From 4c7872ea0fe3a5cbc4502d7dfbf100e036f722f8 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Tue, 6 May 2014 22:39:28 -0700 Subject: [PATCH] add tutorial --- doc/Acknowledgments.html | 2 +- doc/Backstory.html | 2 +- doc/Cache.html | 2 +- doc/Decode.html | 2 +- doc/File_formats.html | 2 +- doc/First__a_poem.html | 10 + doc/First_tutorial.html | 10 + doc/Installation.html | 2 +- doc/License___source_code.html | 2 +- doc/Module_reference.html | 2 +- doc/Pagetree.html | 2 +- doc/Render.html | 4 +- doc/Tag.html | 2 +- doc/Template.html | 2 +- doc/Top.html | 2 +- doc/World.html | 4 +- doc/big-picture.html | 3 + doc/dashboard.png | Bin 0 -> 41812 bytes doc/doc-index.html | 2 +- doc/file-types.html | 2 + doc/index.html | 4 +- doc/project-server.png | Bin 0 -> 273017 bytes doc/quick-tour.html | 2 +- doc/raco-pollen.html | 2 + doc/reader.html | 16 +- doc/result.png | Bin 0 -> 22645 bytes scribblings/big-picture.scrbl | 2 +- scribblings/dashboard.png | Bin 0 -> 41812 bytes scribblings/file.scrbl | 2 +- scribblings/poem.scrbl | 598 +++++++++++++++++++++++++++++++ scribblings/pollen.scrbl | 2 + scribblings/project-server.png | Bin 0 -> 273017 bytes scribblings/raco.scrbl | 4 +- scribblings/result.png | Bin 0 -> 22645 bytes tutorial/index.html | 12 + tutorial/index.html.pmd | 41 +++ tutorial/play/act 1.pmd | 199 ++++++++++ tutorial/play/act 2.pmd | 249 +++++++++++++ tutorial/play/act 3.pmd | 211 +++++++++++ tutorial/poem/ulysses.html | 81 +++++ tutorial/poem/ulysses.html.pp | 89 +++++ tutorial/poem/waste-land.html.pp | 81 +++++ tutorial/space.jpg | Bin 0 -> 124425 bytes tutorial/styles.css | 48 +++ tutorial/template.html | 9 + 45 files changed, 1680 insertions(+), 31 deletions(-) create mode 100644 doc/First__a_poem.html create mode 100644 doc/First_tutorial.html create mode 100644 doc/big-picture.html create mode 100644 doc/dashboard.png create mode 100644 doc/file-types.html create mode 100644 doc/project-server.png create mode 100644 doc/raco-pollen.html create mode 100644 doc/result.png create mode 100644 scribblings/dashboard.png create mode 100644 scribblings/poem.scrbl create mode 100644 scribblings/project-server.png create mode 100644 scribblings/result.png create mode 100644 tutorial/index.html create mode 100644 tutorial/index.html.pmd create mode 100644 tutorial/play/act 1.pmd create mode 100644 tutorial/play/act 2.pmd create mode 100644 tutorial/play/act 3.pmd create mode 100644 tutorial/poem/ulysses.html create mode 100644 tutorial/poem/ulysses.html.pp create mode 100644 tutorial/poem/waste-land.html.pp create mode 100644 tutorial/space.jpg create mode 100644 tutorial/styles.css create mode 100644 tutorial/template.html diff --git a/doc/Acknowledgments.html b/doc/Acknowledgments.html index 5553c0b..1139ef3 100644 --- a/doc/Acknowledgments.html +++ b/doc/Acknowledgments.html @@ -1,2 +1,2 @@ -9 Acknowledgments
6.0.1.6

9 Acknowledgments

One curious aspect of free software is that you can appropriate the benefits of other people’s work while making it look like your own. No such legerdemain here. Whatever effort I’ve put into Pollen is dwarfed by the epic accomplishments of the Racket development team. I thank all of them — especially Matthew Flatt, Jay McCarthy, and Matthias Felleisen — for making this tremendous tool available, for adding several features I suggested, and for patiently answering my dumb questions over the months.

Thank you to Greg Hendershott for his Markdown parser.

The best software tools do more than get the job done. They create an incentive to undertake jobs you wouldn’t have attempted before. Racket encouraged me to become a better programmer so I could create Pollen. Likewise, I hope that Pollen encourages you to make things you couldn’t before.

MB

 
\ No newline at end of file +10 Acknowledgments
6.0.1.6

10 Acknowledgments

One curious aspect of free software is that you can appropriate the benefits of other people’s work while making it look like your own. No such legerdemain here. Whatever effort I’ve put into Pollen is dwarfed by the epic accomplishments of the Racket development team. I thank all of them — especially Matthew Flatt, Jay McCarthy, and Matthias Felleisen — for making this tremendous tool available, for adding several features I suggested, and for patiently answering my dumb questions over the months.

Thank you to Greg Hendershott for his Markdown parser.

The best software tools do more than get the job done. They create an incentive to undertake jobs you wouldn’t have attempted before. Racket encouraged me to become a better programmer so I could create Pollen. Likewise, I hope that Pollen encourages you to make things you couldn’t before.

MB

 
\ No newline at end of file diff --git a/doc/Backstory.html b/doc/Backstory.html index 7e58d9b..937adfd 100644 --- a/doc/Backstory.html +++ b/doc/Backstory.html @@ -1,2 +1,2 @@ -3 Backstory
6.0.1.6

3 Backstory

I created Pollen to overcome limitations & frustrations I repeatedly encountered with existing web-publishing tools.

If you agree with my characterization of those problems, then you’ll probably like the solution that Pollen offers. If not, you probably won’t.

3.1 Web development and its discontents

I made my first web page in 1994, shortly after the web was invented. I opened my text editor (at the time, BBEdit), pecked out <html><body>Hello world</body></html>, then loaded it in Mosaic. So did a million other nerds.

If you weren’t around then, you didn’t miss much. Everything about the web was horrible: the web browsers, the computers running the browsers, the dial-up connections feeding the browsers, and of course HTML itself. At that point, the desktop-software experience was already slick and refined. By comparison, using the web felt like banging rocks together.

That’s no longer true. The web is now 20 years old. During that time, most parts of the web have improved dramatically — for instance, the connections are faster, the browsers are more sophisticated, the screens have more pixels.

But one part has not improved: the way we make web pages. Over the years, tools promising to simplify HTML development have come and mostly gone — from PageMill to Dreamweaver to WordPress to Jekyll. Meanwhile, true web jocks have remained loyal to the original HTML power tool: the humble text editor.

In one way, this makes sense. Web pages are mostly made of text-based data — HTML, CSS, JavaScript, and so on — and the simplest way to mainpulate this data is with a text editor. While HTML and CSS are not programming languages, they lend themselves to semantic and logical structure that’s most easily expressed by editing them as text. Furthermore, text-based editing makes debugging and performance improvements easier.

But text-based editing is also limited. Though the underlying description of a web page is notionally human-readable, it’s largely optimized to be readable by other software — namely, web browsers. HTML markup in particular is verbose and easily mistyped. And isn’t it fatally dull to manage all the boilerplate, like surrounding every paragraph with <p>...</p>? Yes, it is.

For these reasons, much of web development should lend itself to abstraction & automation. Abstraction means consolidating repetitve, complex patterns into simpler, parameterized forms. Automation means avoiding the manual drudgery of generating the output files. But in practice, tools that enable this abstraction & automation have been slow to arrive, and most have come hobbled with unacceptable deficiencies.

3.2 The better idea: a programming model

Parallel with my HTML education, I also goofed around with various programming languages — C, C++, Perl, Java, PHP, JavaScript, Python. Unlike HTML, programming languages excel at abstraction and automation. This seemed like the obvious direction for web development to go.

What distinguishes the text-editing model from the programming model? It’s a matter of direct vs. indirect manipulation of output. The text-editing model treats HTML as something to be written directly with a text editor. Whereas the programming model treats HTML — or whatever the output is — as the result of compiling a set of source files, which are written in a programming language. The costs of working indirectly via the programming language are offset by the benefits of abstraction & automation.

On the early web, the text-editing model was appealingly precise and quick. On small projects, it worked well enough. But as projects grew, the text-editing model was going to lose steam. I wasn’t the only one to notice. Shortly after those million nerds made their first web page by hand, many of them set about devising ways to apply a programming model to web development.

3.3 “Now you have two problems”

What followed was a steady stream of products, frameworks, tools, and content management systems that claimed to bring a programming model to web development. Some were better than others. But none of them displaced the text editor as the preferred tool of web developers.

Why not? All these tools promised a great leap forward in solving the web-development problem. In practice, they simply redistributed the pain. I needn’t bore you with enumerating the deficiencies of specific tools, because they’ve tended to fail in the same thematic ways:

  • No native data structure for HTML. Core to any programming model is data structures. Good data structures make processing easy; bad ones make it hard. Even though HTML has a well documented format, rarely has it been handled within a programming system with a native, intuitive data structure. Instead, it’s either been treated as a string (wrong), a tree (also wrong), or some magical parsed object. This has made working with HTML in programming environments needlessly difficult.

  • Mandatory separation of code, presentation, and content. This principle has often been held out as an ideal in web development. But it’s also counterintuitive, because an HTML page naturally contains all three. If you want to separate them, your tools should let you. But if you don’t, your tools shouldn’t make you.

  • Compromised template languages. Seems like every programming language has at least 10 templating systems for HTML, all of which require you to learn a new “template language” that offers the worst of both worlds: fewer features and different syntax than the underlying language.

  • Steep learning curves. Web programmers have often chided designers for not knowing how to code. But programming-based web-development tools have often had a high initial learning curve that requires you to throw out your existing workflow. Programmers built these tools — no surprise that programmers have been more comfortable with them.

I’ve tried a lot of these tools over the years. Some I liked. Some I didn’t. Invariably, however, whenever I could still make do with hand-editing an HTML project, I would. After trying to cajole the web framework du jour into doing my bidding, it was relaxing to trade off some efficiency for control.

3.4 Rethinking the solution for digital books

In 2008, I launched a website called Typography for Lawyers. Initially, I’d conceived of it as a book. Then I thought “no one’s going to publish that.” So it became a website, that I aimed to make as book-like as possible. But hand-editing wasn’t going to be enough.

So I used WordPress. The major chore became scraping out all the crap that typically lives in blog templates. Largely because of this, people liked the site, because it was simpler & cleaner than the usual WordPress website.

Eventually, a publisher offered to release it as a paperback. Later came the inevitable request to make it into a Kindle book. As a fan of typography, I hate the Kindle. The layout controls are coarse, and so is the reading experience. But I didn’t run and hide. Basically a Kindle book is a little website made with 1995-era HTML. So I coded up some tools in Perl to convert my book to Kindle format while preserving the formatting and images as well as possible.

At that point, I noticed I had converted Typography for Lawyers into web format twice, using two different sets of tools. Before someone asked me to do it a third time, I started thinking about how I might create source code for the book that allowed me to render it into different formats.

This was the beginning of the Pollen project.

I wrote the initial version of Pollen in Python. I devised a simplified markup-notation language for the source files. This language was compiled into XML-ish data structures using ply (Python lex/yacc). These structures were parsed into trees using LXML. The trees were combined with templates made in Chameleon. These templates were rendered and previewed with the Bottle web server.

Did it work? Sort of. Source code went in; web pages came out. But it was also complicated and fragile. Moreover, though the automation was there, there wasn’t yet enough abstraction at the source layer. I started thinking about how I could add a source preprocessor.

3.5 Enter Racket

I had come across Racket while researching languages suitable for HTML/XML processing. I had unexpectedly learned about the secret kinship of XML and Lisp: though XML is not a programming language, it uses a variant of Lisp syntax. Thus Lisp languages are particularly adept at handling XMLish structures. That was interesting.

After comparing some of the Lisp & Scheme variants, Racket stood out because it had a text-based dialect called Scribble. Scribble could be used to embed code within textual content. That was interesting too. Among other things, this meant Scribble could be used as a general-purpose preprocessor. So I thought I’d see if I could add it to Pollen.

It worked. So well, in fact, that I started thinking about whether I could reimplement other parts of Pollen in Racket. Then I started thinking about reimplementing all of it in Racket.

So I did. And here we are.

3.6 What is Pollen?

Pollen is a publishing system built on top of Scribble and Racket. So far I’ve optimized Pollen for digital books, because that’s mainly what I use it for. But it can be used for small projects too.

As a publishing system, Pollen includes:

  • A programming language. The Pollen language is a variant of Scribble, with specific “dialects” tailored to different kinds of source files. You don’t need to use the programming features to do useful work, but they’re available when you need them.

  • A set of tools & libraries. Pollen targets HTML output. So it includes a variety of tools that cure common HTML annoyances, including a CSS preprocessor.

  • A development environment. Pollen works with the DrRacket IDE. It also includes a project web server so you can dynamically preview and revise your publication.

Pollen addresses the deficiencies I experienced with other tools:

  • Yes, we have a native data structure for HTML. Racket represents HTML structures as X-expressions, which are a variant of the standard Racket data structure, called S-expressions. In other words, not only is there a native representation for HTML, everything in the language is represented this way.

  • Flexible blending of code, presentation, and content. Pollen is a text-based language. So a Pollen source file might have no code at all. But as a dialect of Scribble & Racket, if you want to mix code with content, you can.

  • No template language. It’s not necessary, because you can use the whole Racket language, and all the usual Racket syntax, in every Pollen file.

  • Shallow learning curve. You don’t need to do a lot of setup and configuration to start doing useful work with Pollen. Programmers and non-programmers can easily collaborate. Yes, I concede that if you plan to get serious, you’ll need to learn some Racket. I don’t think you’ll regret it.

 
\ No newline at end of file +3 Backstory
6.0.1.6

3 Backstory

I created Pollen to overcome limitations & frustrations I repeatedly encountered with existing web-publishing tools.

If you agree with my characterization of those problems, then you’ll probably like the solution that Pollen offers. If not, you probably won’t.

3.1 Web development and its discontents

I made my first web page in 1994, shortly after the web was invented. I opened my text editor (at the time, BBEdit), pecked out <html><body>Hello world</body></html>, then loaded it in Mosaic. So did a million other nerds.

If you weren’t around then, you didn’t miss much. Everything about the web was horrible: the web browsers, the computers running the browsers, the dial-up connections feeding the browsers, and of course HTML itself. At that point, the desktop-software experience was already slick and refined. By comparison, using the web felt like banging rocks together.

That’s no longer true. The web is now 20 years old. During that time, most parts of the web have improved dramatically — for instance, the connections are faster, the browsers are more sophisticated, the screens have more pixels.

But one part has not improved: the way we make web pages. Over the years, tools promising to simplify HTML development have come and mostly gone — from PageMill to Dreamweaver to WordPress to Jekyll. Meanwhile, true web jocks have remained loyal to the original HTML power tool: the humble text editor.

In one way, this makes sense. Web pages are mostly made of text-based data — HTML, CSS, JavaScript, and so on — and the simplest way to mainpulate this data is with a text editor. While HTML and CSS are not programming languages, they lend themselves to semantic and logical structure that’s most easily expressed by editing them as text. Furthermore, text-based editing makes debugging and performance improvements easier.

But text-based editing is also limited. Though the underlying description of a web page is notionally human-readable, it’s largely optimized to be readable by other software — namely, web browsers. HTML markup in particular is verbose and easily mistyped. And isn’t it fatally dull to manage all the boilerplate, like surrounding every paragraph with <p>...</p>? Yes, it is.

For these reasons, much of web development should lend itself to abstraction & automation. Abstraction means consolidating repetitve, complex patterns into simpler, parameterized forms. Automation means avoiding the manual drudgery of generating the output files. But in practice, tools that enable this abstraction & automation have been slow to arrive, and most have come hobbled with unacceptable deficiencies.

3.2 The better idea: a programming model

Parallel with my HTML education, I also goofed around with various programming languages — C, C++, Perl, Java, PHP, JavaScript, Python. Unlike HTML, programming languages excel at abstraction and automation. This seemed like the obvious direction for web development to go.

What distinguishes the text-editing model from the programming model? It’s a matter of direct vs. indirect manipulation of output. The text-editing model treats HTML as something to be written directly with a text editor. Whereas the programming model treats HTML — or whatever the output is — as the result of compiling a set of source files, which are written in a programming language. The costs of working indirectly via the programming language are offset by the benefits of abstraction & automation.

On the early web, the text-editing model was appealingly precise and quick. On small projects, it worked well enough. But as projects grew, the text-editing model was going to lose steam. I wasn’t the only one to notice. Shortly after those million nerds made their first web page by hand, many of them set about devising ways to apply a programming model to web development.

3.3 “Now you have two problems”

What followed was a steady stream of products, frameworks, tools, and content management systems that claimed to bring a programming model to web development. Some were better than others. But none of them displaced the text editor as the preferred tool of web developers.

Why not? All these tools promised a great leap forward in solving the web-development problem. In practice, they simply redistributed the pain. I needn’t bore you with enumerating the deficiencies of specific tools, because they’ve tended to fail in the same thematic ways:

  • No native data structure for HTML. Core to any programming model is data structures. Good data structures make processing easy; bad ones make it hard. Even though HTML has a well documented format, rarely has it been handled within a programming system with a native, intuitive data structure. Instead, it’s either been treated as a string (wrong), a tree (also wrong), or some magical parsed object. This has made working with HTML in programming environments needlessly difficult.

  • Mandatory separation of code, presentation, and content. This principle has often been held out as an ideal in web development. But it’s also counterintuitive, because an HTML page naturally contains all three. If you want to separate them, your tools should let you. But if you don’t, your tools shouldn’t make you.

  • Compromised template languages. Seems like every programming language has at least 10 templating systems for HTML, all of which require you to learn a new “template language” that offers the worst of both worlds: fewer features and different syntax than the underlying language.

  • Steep learning curves. Web programmers have often chided designers for not knowing how to code. But programming-based web-development tools have often had a high initial learning curve that requires you to throw out your existing workflow. Programmers built these tools — no surprise that programmers have been more comfortable with them.

I’ve tried a lot of these tools over the years. Some I liked. Some I didn’t. Invariably, however, whenever I could still make do with hand-editing an HTML project, I would. After trying to cajole the web framework du jour into doing my bidding, it was relaxing to trade off some efficiency for control.

3.4 Rethinking the solution for digital books

In 2008, I launched a website called Typography for Lawyers. Initially, I’d conceived of it as a book. Then I thought “no one’s going to publish that.” So it became a website, that I aimed to make as book-like as possible. But hand-editing wasn’t going to be enough.

So I used WordPress. The major chore became scraping out all the crap that typically lives in blog templates. Largely because of this, people liked the site, because it was simpler & cleaner than the usual WordPress website.

Eventually, a publisher offered to release it as a paperback. Later came the inevitable request to make it into a Kindle book. As a fan of typography, I hate the Kindle. The layout controls are coarse, and so is the reading experience. But I didn’t run and hide. Basically a Kindle book is a little website made with 1995-era HTML. So I coded up some tools in Perl to convert my book to Kindle format while preserving the formatting and images as well as possible.

At that point, I noticed I had converted Typography for Lawyers into web format twice, using two different sets of tools. Before someone asked me to do it a third time, I started thinking about how I might create source code for the book that allowed me to render it into different formats.

This was the beginning of the Pollen project.

I wrote the initial version of Pollen in Python. I devised a simplified markup-notation language for the source files. This language was compiled into XML-ish data structures using ply (Python lex/yacc). These structures were parsed into trees using LXML. The trees were combined with templates made in Chameleon. These templates were rendered and previewed with the Bottle web server.

Did it work? Sort of. Source code went in; web pages came out. But it was also complicated and fragile. Moreover, though the automation was there, there wasn’t yet enough abstraction at the source layer. I started thinking about how I could add a source preprocessor.

3.5 Enter Racket

I had come across Racket while researching languages suitable for HTML/XML processing. I had unexpectedly learned about the secret kinship of XML and Lisp: though XML is not a programming language, it uses a variant of Lisp syntax. Thus Lisp languages are particularly adept at handling XMLish structures. That was interesting.

After comparing some of the Lisp & Scheme variants, Racket stood out because it had a text-based dialect called Scribble. Scribble could be used to embed code within textual content. That was interesting too. Among other things, this meant Scribble could be used as a general-purpose preprocessor. So I thought I’d see if I could add it to Pollen.

It worked. So well, in fact, that I started thinking about whether I could reimplement other parts of Pollen in Racket. Then I started thinking about reimplementing all of it in Racket.

So I did. And here we are.

3.6 What is Pollen?

Pollen is a publishing system built on top of Scribble and Racket. So far I’ve optimized Pollen for digital books, because that’s mainly what I use it for. But it can be used for small projects too.

As a publishing system, Pollen includes:

  • A programming language. The Pollen language is a variant of Scribble, with specific “dialects” tailored to different kinds of source files. You don’t need to use the programming features to do useful work, but they’re available when you need them.

  • A set of tools & libraries. Pollen targets HTML output. So it includes a variety of tools that cure common HTML annoyances, including a CSS preprocessor.

  • A development environment. Pollen works with the DrRacket IDE. It also includes a project web server so you can dynamically preview and revise your publication.

Pollen addresses the deficiencies I experienced with other tools:

  • Yes, we have a native data structure for HTML. Racket represents HTML structures as X-expressions, which are a variant of the standard Racket data structure, called S-expressions. In other words, not only is there a native representation for HTML, everything in the language is represented this way.

  • Flexible blending of code, presentation, and content. Pollen is a text-based language. So a Pollen source file might have no code at all. But as a dialect of Scribble & Racket, if you want to mix code with content, you can.

  • No template language. It’s not necessary, because you can use the whole Racket language, and all the usual Racket syntax, in every Pollen file.

  • Shallow learning curve. You don’t need to do a lot of setup and configuration to start doing useful work with Pollen. Programmers and non-programmers can easily collaborate. Yes, I concede that if you plan to get serious, you’ll need to learn some Racket. I don’t think you’ll regret it.

 
\ No newline at end of file diff --git a/doc/Cache.html b/doc/Cache.html index 732495e..5baf7c2 100644 --- a/doc/Cache.html +++ b/doc/Cache.html @@ -1,2 +1,2 @@ -8.1 Cache
6.0.1.6

8.1 Cache

 (require pollen/cache) package: pollen

The slowest part of a render is parsing and decoding the source file. Often, previewing a single source file necessarily means decoding others (for instance templates, or other source files that are linked into the main source file). But usually, only one source file is changing at a time. Therefore, Pollen stores copies of the exports of source files — namely, whatever is stored in doc and metas — in the cache so they can be reused.

parameter

(current-cache)  hash?

(current-cache hash)  void?
  hash : hash?
A parameter that refers to the current cache. It is initialized with make-cache.

The cache is a hash table that uses the complete path of a source file as its keys. The value associated with each of these keys is a subcache — another hash table with keys 'doc, 'metas (for storing the exports of the source file) and 'mod-time (for storing the modification time, provided by file-or-directory-modify-seconds).

procedure

(cached-require source-path key)  (or/c txexpr? hash? integer?)

  source-path : pathish?
  key : (or/c 'doc 'metas 'mod-time)
Similar to (dynamic-require source-path key), except that it first tries to retrieve the requested value out of current-cache. If it’s not there, or out of date, dynamic-require is used to update the value.

The only keys supported are 'doc, 'metas, and 'mod-time.

If you want the speed benefit of the cache, you should always use cached-require to get data from Pollen source files. That doesn’t mean you can’t still use functions like require, local-require, and dynamic-require. They’ll just be slower.

procedure

(make-cache)  hash?

Initializes current-cache.

procedure

(reset-cache)  void?

Clears current-cache. When only the nuclear option will do.

procedure

(cache-ref source-path)  hash?

  source-path : pathish?
Returns the subcache associated with the key source-path, which will itself be a hash table. See current-cache.

 
\ No newline at end of file +9.1 Cache
6.0.1.6

9.1 Cache

 (require pollen/cache) package: pollen

The slowest part of a render is parsing and decoding the source file. Often, previewing a single source file necessarily means decoding others (for instance templates, or other source files that are linked into the main source file). But usually, only one source file is changing at a time. Therefore, Pollen stores copies of the exports of source files — namely, whatever is stored in doc and metas — in the cache so they can be reused.

parameter

(current-cache)  hash?

(current-cache hash)  void?
  hash : hash?
A parameter that refers to the current cache. It is initialized with make-cache.

The cache is a hash table that uses the complete path of a source file as its keys. The value associated with each of these keys is a subcache — another hash table with keys 'doc, 'metas (for storing the exports of the source file) and 'mod-time (for storing the modification time, provided by file-or-directory-modify-seconds).

procedure

(cached-require source-path key)  (or/c txexpr? hash? integer?)

  source-path : pathish?
  key : (or/c 'doc 'metas 'mod-time)
Similar to (dynamic-require source-path key), except that it first tries to retrieve the requested value out of current-cache. If it’s not there, or out of date, dynamic-require is used to update the value.

The only keys supported are 'doc, 'metas, and 'mod-time.

If you want the speed benefit of the cache, you should always use cached-require to get data from Pollen source files. That doesn’t mean you can’t still use functions like require, local-require, and dynamic-require. They’ll just be slower.

procedure

(make-cache)  hash?

Initializes current-cache.

procedure

(reset-cache)  void?

Clears current-cache. When only the nuclear option will do.

procedure

(cache-ref source-path)  hash?

  source-path : pathish?
Returns the subcache associated with the key source-path, which will itself be a hash table. See current-cache.

 
\ No newline at end of file diff --git a/doc/Decode.html b/doc/Decode.html index a6b3a5f..2807dfe 100644 --- a/doc/Decode.html +++ b/doc/Decode.html @@ -1,2 +1,2 @@ -8.2 Decode
6.0.1.6

8.2 Decode

 (require pollen/decode) package: pollen

The doc export of a Pollen markup file is a simple X-expression. Decoding refers to any post-processing of this X-expression. The pollen/decode module provides tools for creating decoders.

The decode step can happen separately from the compilation of the file. But you can also attach a decoder to the markup file’s root node, so the decoding happens automatically when the markup is compiled, and thus automatically incorporated into doc. (Following this approach, you could also attach multiple decoders to different tags within doc.)

You can, of course, embed function calls within Pollen markup. But since markup is optimized for authors, decoding is useful for operations that can or should be moved out of the authoring layer.

One example is presentation and layout. For instance, detect-paragraphs is a decoder function that lets authors mark paragraphs in their source simply by using two carriage returns.

Another example is conversion of output into a particular data format. Most Pollen functions are optimized for HTML output, but one could write a decoder that targets another format.

procedure

(decode tagged-xexpr    
  [#:txexpr-tag-proc txexpr-tag-proc    
  #:txexpr-attrs-proc txexpr-attrs-proc    
  #:txexpr-elements-proc txexpr-elements-proc    
  #:block-txexpr-proc block-txexpr-proc    
  #:inline-txexpr-proc inline-txexpr-proc    
  #:string-proc string-proc    
  #:symbol-proc symbol-proc    
  #:valid-char-proc valid-char-proc    
  #:cdata-proc cdata-proc    
  #:exclude-tags tags-to-exclude])  txexpr?
  tagged-xexpr : txexpr?
  txexpr-tag-proc : (txexpr-tag? . -> . txexpr-tag?)
   = (λ(tag) tag)
  txexpr-attrs-proc : (txexpr-attrs? . -> . txexpr-attrs?)
   = (λ(attrs) attrs)
  txexpr-elements-proc : (txexpr-elements? . -> . txexpr-elements?)
   = (λ(elements) elements)
  block-txexpr-proc : (block-txexpr? . -> . xexpr?) = (λ(tx) tx)
  inline-txexpr-proc : (txexpr? . -> . xexpr?) = (λ(tx) tx)
  string-proc : (string? . -> . xexpr?) = (λ(str) str)
  symbol-proc : (symbol? . -> . xexpr?) = (λ(sym) sym)
  valid-char-proc : (valid-char? . -> . xexpr?) = (λ(vc) vc)
  cdata-proc : (cdata? . -> . xexpr?) = (λ(cdata) cdata)
  tags-to-exclude : (listof symbol?) = null
Recursively process a tagged-xexpr, usually the one exported from a Pollen source file as doc.

This function doesn’t do much on its own. Rather, it provides the hooks upon which harder-working functions can be hung.

Recall from [future link: Pollen mechanics] that any tag can have a function attached to it. By default, the tagged-xexpr from a source file is tagged with root. So the typical way to use decode is to attach your decoding functions to it, and then define root to invoke your decode function. Then it will be automatically applied to every doc during compile.

For instance, here’s how decode is attached to root in Butterick’s Practical Typography. There’s not much to it —

[update with actual code]

This illustrates another important point: even though decode presents an imposing list of arguments, you’re unlikely to use all of them at once. These represent possibilities, not requirements. For instance, let’s see what happens when decode is invoked without any of its optional arguments.

Examples:

> (define tx '(root "I wonder" (em "why") "this works."))
> (decode tx)

'(root "I wonder" (em "why") "this works.")

Right — nothing. That’s because the default value for the decoding arguments is the identity function, (λ (x) x). So all the input gets passed through intact unless another action is specified.

The *-proc arguments of decode take procedures that are applied to specific categories of elements within txexpr.

The txexpr-tag-proc argument is a procedure that handles X-expression tags.

Examples:

> (define tx '(p "I'm from a strange" (strong "namespace")))
; Tags are symbols, so a tag-proc should return a symbol
> (decode tx #:txexpr-tag-proc (λ(t) (string->symbol (format "ns:~a" t))))

'(ns:p "I'm from a strange" (ns:strong "namespace"))

The txexpr-attrs-proc argument is a procedure that handles lists of X-expression attributes. (The txexpr module, included at no extra charge with Pollen, includes useful helper functions for dealing with these attribute lists.)

Examples:

> (define tx '(p [[id "first"]] "If I only had a brain."))
; Attrs is a list, so cons is OK for simple cases
> (decode tx #:txexpr-attrs-proc (λ(attrs) (cons '[class "PhD"] attrs)))

'(p ((class "PhD") (id "first")) "If I only had a brain.")

Note that txexpr-attrs-proc will change the attributes of every tagged X-expression, even those that don’t have attributes. This is useful, because sometimes you want to add attributes where none existed before. But be careful, because the behavior may make your processing function overinclusive.

Examples:

> (define tx '(div (p [[id "first"]] "If I only had a brain.")
  (p "Me too.")))
; This will insert the new attribute everywhere
> (decode tx #:txexpr-attrs-proc (λ(attrs) (cons '[class "PhD"] attrs)))

'(div

  ((class "PhD"))

  (p ((class "PhD") (id "first")) "If I only had a brain.")

  (p ((class "PhD")) "Me too."))

; This will add the new attribute only to non-null attribute lists
> (decode tx #:txexpr-attrs-proc
  (λ(attrs) (if (null? attrs) attrs (cons '[class "PhD"] attrs))))

'(div (p ((class "PhD") (id "first")) "If I only had a brain.") (p "Me too."))

The txexpr-elements-proc argument is a procedure that operates on the list of elements that represents the content of each tagged X-expression. Note that each element of an X-expression is subject to two passes through the decoder: once now, as a member of the list of elements, and also later, through its type-specific decoder (i.e., string-proc, symbol-proc, and so on).

Examples:

> (define tx '(div "Double" "\n" "toil" amp "trouble"))
; Every element gets doubled ...
> (decode tx #:txexpr-elements-proc (λ(es) (append-map (λ(e) `(,e ,e)) es)))

'(div "Double" "Double" "\n" "\n" "toil" "toil" amp amp "trouble" "trouble")

; ... but only strings get capitalized
> (decode tx #:txexpr-elements-proc (λ(es) (append-map (λ(e) `(,e ,e)) es))
  #:string-proc (λ(s) (string-upcase s)))

'(div "DOUBLE" "DOUBLE" "\n" "\n" "TOIL" "TOIL" amp amp "TROUBLE" "TROUBLE")

So why do you need txexpr-elements-proc? Because some types of element decoding depend on context, thus it’s necessary to handle the elements as a group. For instance, the doubling function above, though useless, requires handling the element list as a whole, because elements are being added.

A more useful example: paragraph detection. The behavior is not merely a map across each element:

Examples:

> (define (paras tx) (decode tx #:txexpr-elements-proc detect-paragraphs))
; Context matters. Trailing whitespace is ignored ...
> (paras '(body "The first paragraph." "\n\n"))

'(body "The first paragraph.")

; ... but whitespace between strings is converted to a break.
> (paras '(body "The first paragraph." "\n\n" "And another."))

'(body (p "The first paragraph.") (p "And another."))

; A combination of both types
> (paras '(body "The first paragraph." "\n\n" "And another." "\n\n"))

'(body (p "The first paragraph.") (p "And another."))

The block-txexpr-proc argument and the inline-txexpr-proc arguments are procedures that operate on tagged X-expressions. If the X-expression meets the block-txexpr? test, it is processed by block-txexpr-proc. Otherwise, it is processed by inline-txexpr-proc. Thus every tagged X-expression will be handled by one or the other. Of course, if you want block and inline elements to be handled the same way, you can set block-txexpr-proc and inline-txexpr-proc to be the same procedure.

Examples:

> (define tx '(div "Please" (em "mind the gap") (h1 "Tuesdays only")))
> (define add-ns (λ(tx) (make-txexpr
      (string->symbol (format "ns:~a" (get-tag tx)))
      (get-attrs tx)
      (get-elements tx))))
; div and h1 are block elements, so this will only affect them
> (decode tx #:block-txexpr-proc add-ns)

'(ns:div "Please" (em "mind the gap") (ns:h1 "Tuesdays only"))

; em is an inline element, so this will only affect it
> (decode tx #:inline-txexpr-proc add-ns)

'(div "Please" (ns:em "mind the gap") (h1 "Tuesdays only"))

; this will affect all elements
> (decode tx #:block-txexpr-proc add-ns #:inline-txexpr-proc add-ns)

'(ns:div "Please" (ns:em "mind the gap") (ns:h1 "Tuesdays only"))

The string-proc, symbol-proc, valid-char-proc, and cdata-proc arguments are procedures that operate on X-expressions that are strings, symbols, valid-chars, and CDATA, respectively. Deliberately, the output contracts for these procedures accept any kind of X-expression (meaning, the procedure can change the X-expression type).

Examples:

; A div with string, entity, character, and cdata elements
> (define tx `(div "Moe" amp 62 ,(cdata #f #f "3 > 2;")))
> (define rulify (λ(x) '(hr)))
; The rulify function is selectively applied to each
> (print (decode tx #:string-proc rulify))

'(div (hr) amp 62 #(struct:cdata #f #f "3 > 2;"))

> (print (decode tx #:symbol-proc rulify))

'(div "Moe" (hr) 62 #(struct:cdata #f #f "3 > 2;"))

> (print (decode tx #:valid-char-proc rulify))

'(div "Moe" amp (hr) #(struct:cdata #f #f "3 > 2;"))

> (print (decode tx #:cdata-proc rulify))

'(div "Moe" amp 62 (hr))

Finally, the tags-to-exclude argument is a list of tags that will be exempted from decoding. Though you could get the same result by testing the input within the individual decoding functions, that’s tedious and potentially slower.

Examples:

> (define tx '(p "I really think" (em "italics") "should be lowercase."))
> (decode tx #:string-proc (λ(s) (string-upcase s)))

'(p "I REALLY THINK" (em "ITALICS") "SHOULD BE LOWERCASE.")

> (decode tx #:string-proc (λ(s) (string-upcase s)) #:exclude-tags '(em))

'(p "I REALLY THINK" (em "italics") "SHOULD BE LOWERCASE.")

The tags-to-exclude argument is useful if you’re decoding source that’s destined to become HTML. According to the HTML spec, material within a <style> or <script> block needs to be preserved literally. In this example, if the CSS and JavaScript blocks are capitalized, they won’t work. So exclude '(style script), and problem solved.

Examples:

> (define tx '(body (h1 [[class "Red"]] "Let's visit Planet Telex.")
  (style [[type "text/css"]] ".Red {color: green;}")
  (script [[type "text/javascript"]] "var area = h * w;")))
> (decode tx #:string-proc (λ(s) (string-upcase s)))

'(body

  (h1 ((class "Red")) "LET'S VISIT PLANET TELEX.")

  (style ((type "text/css")) ".RED {COLOR: GREEN;}")

  (script ((type "text/javascript")) "VAR AREA = H * W;"))

> (decode tx #:string-proc (λ(s) (string-upcase s))
  #:exclude-tags '(style script))

'(body

  (h1 ((class "Red")) "LET'S VISIT PLANET TELEX.")

  (style ((type "text/css")) ".Red {color: green;}")

  (script ((type "text/javascript")) "var area = h * w;"))

8.2.1 Block

Because it’s convenient, Pollen categorizes tagged X-expressions into two categories: block and inline. Why is it convenient? When using decode, you often want to treat the two categories differently. Not that you have to. But this is how you can.

parameter

(project-block-tags)  (listof txexpr-tag?)

(project-block-tags block-tags)  void?
  block-tags : (listof txexpr-tag?)
A parameter that defines the set of tags that decode will treat as blocks. This parameter is initialized with the HTML block tags, namely:

(address article aside audio blockquote body canvas dd div dl fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hgroup noscript ol output p pre section table tfoot ul video)

procedure

(register-block-tag tag)  void?

  tag : txexpr-tag?
Adds a tag to project-block-tags so that block-txexpr? will report it as a block, and decode will process it with block-txexpr-proc rather than inline-txexpr-proc.

Pollen tries to do the right thing without being told. But this is the rare case where you have to be explicit. If you introduce a tag into your markup that you want treated as a block, you must use this function to identify it, or you will get spooky behavior later on.

For instance, detect-paragraphs knows that block elements in the markup shouldn’t be wrapped in a p tag. So if you introduce a new block element called bloq without registering it as a block, misbehavior will follow:

Examples:

> (define (paras tx) (decode tx #:txexpr-elements-proc detect-paragraphs))
> (paras '(body "I want to be a paragraph." "\n\n" (bloq "But not me.")))

'(body (p "I want to be a paragraph.") (p (bloq "But not me.")))

; Wrong: bloq should not be wrapped

But once you register bloq as a block, order is restored:

Examples:

> (define (paras tx) (decode tx #:txexpr-elements-proc detect-paragraphs))
> (register-block-tag 'bloq)
> (paras '(body "I want to be a paragraph." "\n\n" (bloq "But not me.")))

'(body (p "I want to be a paragraph.") (bloq "But not me."))

; Right: bloq is treated as a block

If you find the idea of registering block tags unbearable, good news. The project-block-tags include the standard HTML block tags by default. So if you just want to use things like div and p and h1–h6, you’ll get the right behavior for free.

Examples:

> (define (paras tx) (decode tx #:txexpr-elements-proc detect-paragraphs))
> (paras '(body "I want to be a paragraph." "\n\n" (div "But not me.")))

'(body (p "I want to be a paragraph.") (div "But not me."))

procedure

(block-txexpr? v)  boolean?

  v : any/c
Predicate that tests whether v is a tagged X-expression, and if so, whether the tag is among the project-block-tags. If not, it is treated as inline. To adjust how this test works, use register-block-tag.

8.2.2 Typography

An assortment of typography & layout functions, designed to be used with decode. These aren’t hard to write. So if you like these, use them. If not, make your own.

procedure

(whitespace? v)  boolean?

  v : any/c
A predicate that returns #t for any stringlike v that’s entirely whitespace, but also the empty string, as well as lists and vectors that are made only of whitespace? members. Following the regexp-match convention, whitespace? does not return #t for a nonbreaking space. If you prefer that behavior, use whitespace/nbsp?.

Examples:

> (whitespace? "\n\n   ")

#t

> (whitespace? (string->symbol "\n\n   "))

#t

> (whitespace? "")

#t

> (whitespace? '("" "  " "\n\n\n" " \n"))

#t

> (define nonbreaking-space (format "~a" #\u00A0))
> (whitespace? nonbreaking-space)

#f

procedure

(whitespace/nbsp? v)  boolean?

  v : any/c
Like whitespace?, but also returns #t for nonbreaking spaces.

Examples:

> (whitespace/nbsp? "\n\n   ")

#t

> (whitespace/nbsp? (string->symbol "\n\n   "))

#t

> (whitespace/nbsp? "")

#t

> (whitespace/nbsp? '("" "  " "\n\n\n" " \n"))

#t

> (define nonbreaking-space (format "~a" #\u00A0))
> (whitespace/nbsp? nonbreaking-space)

#t

procedure

(smart-quotes str)  string?

  str : string?
Convert straight quotes in str to curly according to American English conventions.

Examples:

> (define tricky-string
  "\"Why,\" she could've asked, \"are we in O‘ahu watching 'Mame'?\"")
> (display tricky-string)

"Why," she could've asked, "are we in O‘ahu watching 'Mame'?"

> (display (smart-quotes tricky-string))

“Why,” she could’ve asked, “are we in O‘ahu watching ‘Mame’?”

procedure

(smart-dashes str)  string?

  str : string?
In str, convert three hyphens to an em dash, and two hyphens to an en dash, and remove surrounding spaces.

Examples:

> (define tricky-string "I had a few --- OK, like 6--8 --- thin mints.")
> (display tricky-string)

I had a few --- OK, like 6--8 --- thin mints.

> (display (smart-dashes tricky-string))

I had a few—OK, like 6–8—thin mints.

; Monospaced font not great for showing dashes, but you get the idea

procedure

(detect-linebreaks tagged-xexpr-elements 
  [#:separator linebreak-sep 
  #:insert linebreak]) 
  txexpr-elements?
  tagged-xexpr-elements : txexpr-elements?
  linebreak-sep : string? = world:linebreak-separator
  linebreak : xexpr? = '(br)
Within tagged-xexpr-elements, convert occurrences of linebreak-sep ("\n" by default) to linebreak, but only if linebreak-sep does not occur between blocks (see block-txexpr?). Why? Because block-level elements automatically display on a new line, so adding linebreak would be superfluous. In that case, linebreak-sep just disappears.

Examples:

> (detect-linebreaks '(div "Two items:" "\n" (em "Eggs") "\n" (em "Bacon")))

'(div "Two items:" (br) (em "Eggs") (br) (em "Bacon"))

> (detect-linebreaks '(div "Two items:" "\n" (div "Eggs") "\n" (div "Bacon")))

'(div "Two items:" (div "Eggs") (div "Bacon"))

procedure

(detect-paragraphs elements 
  [#:separator paragraph-sep 
  #:tag paragraph-tag 
  #:linebreak-proc linebreak-proc]) 
  txexpr-elements?
  elements : txexpr-elements?
  paragraph-sep : string? = world:paragraph-separator
  paragraph-tag : symbol? = 'p
  linebreak-proc : (txexpr-elements? . -> . txexpr-elements?)
   = detect-linebreaks
Find paragraphs within elements, as denoted by paragraph-sep, and wrap them with paragraph-tag, unless the element is already a block-txexpr? (because in that case, the wrapping is superfluous). Thus, as a consequence, if paragraph-sep occurs between two blocks, it’s ignored.

The paragraph-tag argument sets the tag used to wrap paragraphs.

The linebreak-proc argument allows you to use a different linebreaking procedure other than the usual detect-linebreaks.

Examples:

> (detect-paragraphs '("First para" "\n\n" "Second para"))

'((p "First para") (p "Second para"))

> (detect-paragraphs '("First para" "\n\n" "Second para" "\n" "Second line"))

'((p "First para") (p "Second para" (br) "Second line"))

> (detect-paragraphs '("First para" "\n\n" (div "Second block")))

'((p "First para") (div "Second block"))

> (detect-paragraphs '((div "First block") "\n\n" (div "Second block")))

'((div "First block") (div "Second block"))

> (detect-paragraphs '("First para" "\n\n" "Second para") #:tag 'ns:p)

'((ns:p "First para") (ns:p "Second para"))

> (detect-paragraphs '("First para" "\n\n" "Second para" "\n" "Second line")
  #:linebreak-proc (λ(x) (detect-linebreaks x #:insert '(newline))))

'((p "First para") (p "Second para" (newline) "Second line"))

 
\ No newline at end of file +9.2 Decode
6.0.1.6

9.2 Decode

 (require pollen/decode) package: pollen

The doc export of a Pollen markup file is a simple X-expression. Decoding refers to any post-processing of this X-expression. The pollen/decode module provides tools for creating decoders.

The decode step can happen separately from the compilation of the file. But you can also attach a decoder to the markup file’s root node, so the decoding happens automatically when the markup is compiled, and thus automatically incorporated into doc. (Following this approach, you could also attach multiple decoders to different tags within doc.)

You can, of course, embed function calls within Pollen markup. But since markup is optimized for authors, decoding is useful for operations that can or should be moved out of the authoring layer.

One example is presentation and layout. For instance, detect-paragraphs is a decoder function that lets authors mark paragraphs in their source simply by using two carriage returns.

Another example is conversion of output into a particular data format. Most Pollen functions are optimized for HTML output, but one could write a decoder that targets another format.

procedure

(decode tagged-xexpr    
  [#:txexpr-tag-proc txexpr-tag-proc    
  #:txexpr-attrs-proc txexpr-attrs-proc    
  #:txexpr-elements-proc txexpr-elements-proc    
  #:block-txexpr-proc block-txexpr-proc    
  #:inline-txexpr-proc inline-txexpr-proc    
  #:string-proc string-proc    
  #:symbol-proc symbol-proc    
  #:valid-char-proc valid-char-proc    
  #:cdata-proc cdata-proc    
  #:exclude-tags tags-to-exclude])  txexpr?
  tagged-xexpr : txexpr?
  txexpr-tag-proc : (txexpr-tag? . -> . txexpr-tag?)
   = (λ(tag) tag)
  txexpr-attrs-proc : (txexpr-attrs? . -> . txexpr-attrs?)
   = (λ(attrs) attrs)
  txexpr-elements-proc : (txexpr-elements? . -> . txexpr-elements?)
   = (λ(elements) elements)
  block-txexpr-proc : (block-txexpr? . -> . xexpr?) = (λ(tx) tx)
  inline-txexpr-proc : (txexpr? . -> . xexpr?) = (λ(tx) tx)
  string-proc : (string? . -> . xexpr?) = (λ(str) str)
  symbol-proc : (symbol? . -> . xexpr?) = (λ(sym) sym)
  valid-char-proc : (valid-char? . -> . xexpr?) = (λ(vc) vc)
  cdata-proc : (cdata? . -> . xexpr?) = (λ(cdata) cdata)
  tags-to-exclude : (listof symbol?) = null
Recursively process a tagged-xexpr, usually the one exported from a Pollen source file as doc.

This function doesn’t do much on its own. Rather, it provides the hooks upon which harder-working functions can be hung.

Recall from [future link: Pollen mechanics] that any tag can have a function attached to it. By default, the tagged-xexpr from a source file is tagged with root. So the typical way to use decode is to attach your decoding functions to it, and then define root to invoke your decode function. Then it will be automatically applied to every doc during compile.

For instance, here’s how decode is attached to root in Butterick’s Practical Typography. There’s not much to it —

[update with actual code]

This illustrates another important point: even though decode presents an imposing list of arguments, you’re unlikely to use all of them at once. These represent possibilities, not requirements. For instance, let’s see what happens when decode is invoked without any of its optional arguments.

Examples:

> (define tx '(root "I wonder" (em "why") "this works."))
> (decode tx)

'(root "I wonder" (em "why") "this works.")

Right — nothing. That’s because the default value for the decoding arguments is the identity function, (λ (x) x). So all the input gets passed through intact unless another action is specified.

The *-proc arguments of decode take procedures that are applied to specific categories of elements within txexpr.

The txexpr-tag-proc argument is a procedure that handles X-expression tags.

Examples:

> (define tx '(p "I'm from a strange" (strong "namespace")))
; Tags are symbols, so a tag-proc should return a symbol
> (decode tx #:txexpr-tag-proc (λ(t) (string->symbol (format "ns:~a" t))))

'(ns:p "I'm from a strange" (ns:strong "namespace"))

The txexpr-attrs-proc argument is a procedure that handles lists of X-expression attributes. (The txexpr module, included at no extra charge with Pollen, includes useful helper functions for dealing with these attribute lists.)

Examples:

> (define tx '(p [[id "first"]] "If I only had a brain."))
; Attrs is a list, so cons is OK for simple cases
> (decode tx #:txexpr-attrs-proc (λ(attrs) (cons '[class "PhD"] attrs)))

'(p ((class "PhD") (id "first")) "If I only had a brain.")

Note that txexpr-attrs-proc will change the attributes of every tagged X-expression, even those that don’t have attributes. This is useful, because sometimes you want to add attributes where none existed before. But be careful, because the behavior may make your processing function overinclusive.

Examples:

> (define tx '(div (p [[id "first"]] "If I only had a brain.")
  (p "Me too.")))
; This will insert the new attribute everywhere
> (decode tx #:txexpr-attrs-proc (λ(attrs) (cons '[class "PhD"] attrs)))

'(div

  ((class "PhD"))

  (p ((class "PhD") (id "first")) "If I only had a brain.")

  (p ((class "PhD")) "Me too."))

; This will add the new attribute only to non-null attribute lists
> (decode tx #:txexpr-attrs-proc
  (λ(attrs) (if (null? attrs) attrs (cons '[class "PhD"] attrs))))

'(div (p ((class "PhD") (id "first")) "If I only had a brain.") (p "Me too."))

The txexpr-elements-proc argument is a procedure that operates on the list of elements that represents the content of each tagged X-expression. Note that each element of an X-expression is subject to two passes through the decoder: once now, as a member of the list of elements, and also later, through its type-specific decoder (i.e., string-proc, symbol-proc, and so on).

Examples:

> (define tx '(div "Double" "\n" "toil" amp "trouble"))
; Every element gets doubled ...
> (decode tx #:txexpr-elements-proc (λ(es) (append-map (λ(e) `(,e ,e)) es)))

'(div "Double" "Double" "\n" "\n" "toil" "toil" amp amp "trouble" "trouble")

; ... but only strings get capitalized
> (decode tx #:txexpr-elements-proc (λ(es) (append-map (λ(e) `(,e ,e)) es))
  #:string-proc (λ(s) (string-upcase s)))

'(div "DOUBLE" "DOUBLE" "\n" "\n" "TOIL" "TOIL" amp amp "TROUBLE" "TROUBLE")

So why do you need txexpr-elements-proc? Because some types of element decoding depend on context, thus it’s necessary to handle the elements as a group. For instance, the doubling function above, though useless, requires handling the element list as a whole, because elements are being added.

A more useful example: paragraph detection. The behavior is not merely a map across each element:

Examples:

> (define (paras tx) (decode tx #:txexpr-elements-proc detect-paragraphs))
; Context matters. Trailing whitespace is ignored ...
> (paras '(body "The first paragraph." "\n\n"))

'(body "The first paragraph.")

; ... but whitespace between strings is converted to a break.
> (paras '(body "The first paragraph." "\n\n" "And another."))

'(body (p "The first paragraph.") (p "And another."))

; A combination of both types
> (paras '(body "The first paragraph." "\n\n" "And another." "\n\n"))

'(body (p "The first paragraph.") (p "And another."))

The block-txexpr-proc argument and the inline-txexpr-proc arguments are procedures that operate on tagged X-expressions. If the X-expression meets the block-txexpr? test, it is processed by block-txexpr-proc. Otherwise, it is processed by inline-txexpr-proc. Thus every tagged X-expression will be handled by one or the other. Of course, if you want block and inline elements to be handled the same way, you can set block-txexpr-proc and inline-txexpr-proc to be the same procedure.

Examples:

> (define tx '(div "Please" (em "mind the gap") (h1 "Tuesdays only")))
> (define add-ns (λ(tx) (make-txexpr
      (string->symbol (format "ns:~a" (get-tag tx)))
      (get-attrs tx)
      (get-elements tx))))
; div and h1 are block elements, so this will only affect them
> (decode tx #:block-txexpr-proc add-ns)

'(ns:div "Please" (em "mind the gap") (ns:h1 "Tuesdays only"))

; em is an inline element, so this will only affect it
> (decode tx #:inline-txexpr-proc add-ns)

'(div "Please" (ns:em "mind the gap") (h1 "Tuesdays only"))

; this will affect all elements
> (decode tx #:block-txexpr-proc add-ns #:inline-txexpr-proc add-ns)

'(ns:div "Please" (ns:em "mind the gap") (ns:h1 "Tuesdays only"))

The string-proc, symbol-proc, valid-char-proc, and cdata-proc arguments are procedures that operate on X-expressions that are strings, symbols, valid-chars, and CDATA, respectively. Deliberately, the output contracts for these procedures accept any kind of X-expression (meaning, the procedure can change the X-expression type).

Examples:

; A div with string, entity, character, and cdata elements
> (define tx `(div "Moe" amp 62 ,(cdata #f #f "3 > 2;")))
> (define rulify (λ(x) '(hr)))
; The rulify function is selectively applied to each
> (print (decode tx #:string-proc rulify))

'(div (hr) amp 62 #(struct:cdata #f #f "3 > 2;"))

> (print (decode tx #:symbol-proc rulify))

'(div "Moe" (hr) 62 #(struct:cdata #f #f "3 > 2;"))

> (print (decode tx #:valid-char-proc rulify))

'(div "Moe" amp (hr) #(struct:cdata #f #f "3 > 2;"))

> (print (decode tx #:cdata-proc rulify))

'(div "Moe" amp 62 (hr))

Finally, the tags-to-exclude argument is a list of tags that will be exempted from decoding. Though you could get the same result by testing the input within the individual decoding functions, that’s tedious and potentially slower.

Examples:

> (define tx '(p "I really think" (em "italics") "should be lowercase."))
> (decode tx #:string-proc (λ(s) (string-upcase s)))

'(p "I REALLY THINK" (em "ITALICS") "SHOULD BE LOWERCASE.")

> (decode tx #:string-proc (λ(s) (string-upcase s)) #:exclude-tags '(em))

'(p "I REALLY THINK" (em "italics") "SHOULD BE LOWERCASE.")

The tags-to-exclude argument is useful if you’re decoding source that’s destined to become HTML. According to the HTML spec, material within a <style> or <script> block needs to be preserved literally. In this example, if the CSS and JavaScript blocks are capitalized, they won’t work. So exclude '(style script), and problem solved.

Examples:

> (define tx '(body (h1 [[class "Red"]] "Let's visit Planet Telex.")
  (style [[type "text/css"]] ".Red {color: green;}")
  (script [[type "text/javascript"]] "var area = h * w;")))
> (decode tx #:string-proc (λ(s) (string-upcase s)))

'(body

  (h1 ((class "Red")) "LET'S VISIT PLANET TELEX.")

  (style ((type "text/css")) ".RED {COLOR: GREEN;}")

  (script ((type "text/javascript")) "VAR AREA = H * W;"))

> (decode tx #:string-proc (λ(s) (string-upcase s))
  #:exclude-tags '(style script))

'(body

  (h1 ((class "Red")) "LET'S VISIT PLANET TELEX.")

  (style ((type "text/css")) ".Red {color: green;}")

  (script ((type "text/javascript")) "var area = h * w;"))

9.2.1 Block

Because it’s convenient, Pollen categorizes tagged X-expressions into two categories: block and inline. Why is it convenient? When using decode, you often want to treat the two categories differently. Not that you have to. But this is how you can.

parameter

(project-block-tags)  (listof txexpr-tag?)

(project-block-tags block-tags)  void?
  block-tags : (listof txexpr-tag?)
A parameter that defines the set of tags that decode will treat as blocks. This parameter is initialized with the HTML block tags, namely:

(address article aside audio blockquote body canvas dd div dl fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hgroup noscript ol output p pre section table tfoot ul video)

procedure

(register-block-tag tag)  void?

  tag : txexpr-tag?
Adds a tag to project-block-tags so that block-txexpr? will report it as a block, and decode will process it with block-txexpr-proc rather than inline-txexpr-proc.

Pollen tries to do the right thing without being told. But this is the rare case where you have to be explicit. If you introduce a tag into your markup that you want treated as a block, you must use this function to identify it, or you will get spooky behavior later on.

For instance, detect-paragraphs knows that block elements in the markup shouldn’t be wrapped in a p tag. So if you introduce a new block element called bloq without registering it as a block, misbehavior will follow:

Examples:

> (define (paras tx) (decode tx #:txexpr-elements-proc detect-paragraphs))
> (paras '(body "I want to be a paragraph." "\n\n" (bloq "But not me.")))

'(body (p "I want to be a paragraph.") (p (bloq "But not me.")))

; Wrong: bloq should not be wrapped

But once you register bloq as a block, order is restored:

Examples:

> (define (paras tx) (decode tx #:txexpr-elements-proc detect-paragraphs))
> (register-block-tag 'bloq)
> (paras '(body "I want to be a paragraph." "\n\n" (bloq "But not me.")))

'(body (p "I want to be a paragraph.") (bloq "But not me."))

; Right: bloq is treated as a block

If you find the idea of registering block tags unbearable, good news. The project-block-tags include the standard HTML block tags by default. So if you just want to use things like div and p and h1–h6, you’ll get the right behavior for free.

Examples:

> (define (paras tx) (decode tx #:txexpr-elements-proc detect-paragraphs))
> (paras '(body "I want to be a paragraph." "\n\n" (div "But not me.")))

'(body (p "I want to be a paragraph.") (div "But not me."))

procedure

(block-txexpr? v)  boolean?

  v : any/c
Predicate that tests whether v is a tagged X-expression, and if so, whether the tag is among the project-block-tags. If not, it is treated as inline. To adjust how this test works, use register-block-tag.

9.2.2 Typography

An assortment of typography & layout functions, designed to be used with decode. These aren’t hard to write. So if you like these, use them. If not, make your own.

procedure

(whitespace? v)  boolean?

  v : any/c
A predicate that returns #t for any stringlike v that’s entirely whitespace, but also the empty string, as well as lists and vectors that are made only of whitespace? members. Following the regexp-match convention, whitespace? does not return #t for a nonbreaking space. If you prefer that behavior, use whitespace/nbsp?.

Examples:

> (whitespace? "\n\n   ")

#t

> (whitespace? (string->symbol "\n\n   "))

#t

> (whitespace? "")

#t

> (whitespace? '("" "  " "\n\n\n" " \n"))

#t

> (define nonbreaking-space (format "~a" #\u00A0))
> (whitespace? nonbreaking-space)

#f

procedure

(whitespace/nbsp? v)  boolean?

  v : any/c
Like whitespace?, but also returns #t for nonbreaking spaces.

Examples:

> (whitespace/nbsp? "\n\n   ")

#t

> (whitespace/nbsp? (string->symbol "\n\n   "))

#t

> (whitespace/nbsp? "")

#t

> (whitespace/nbsp? '("" "  " "\n\n\n" " \n"))

#t

> (define nonbreaking-space (format "~a" #\u00A0))
> (whitespace/nbsp? nonbreaking-space)

#t

procedure

(smart-quotes str)  string?

  str : string?
Convert straight quotes in str to curly according to American English conventions.

Examples:

> (define tricky-string
  "\"Why,\" she could've asked, \"are we in O‘ahu watching 'Mame'?\"")
> (display tricky-string)

"Why," she could've asked, "are we in O‘ahu watching 'Mame'?"

> (display (smart-quotes tricky-string))

“Why,” she could’ve asked, “are we in O‘ahu watching ‘Mame’?”

procedure

(smart-dashes str)  string?

  str : string?
In str, convert three hyphens to an em dash, and two hyphens to an en dash, and remove surrounding spaces.

Examples:

> (define tricky-string "I had a few --- OK, like 6--8 --- thin mints.")
> (display tricky-string)

I had a few --- OK, like 6--8 --- thin mints.

> (display (smart-dashes tricky-string))

I had a few—OK, like 6–8—thin mints.

; Monospaced font not great for showing dashes, but you get the idea

procedure

(detect-linebreaks tagged-xexpr-elements 
  [#:separator linebreak-sep 
  #:insert linebreak]) 
  txexpr-elements?
  tagged-xexpr-elements : txexpr-elements?
  linebreak-sep : string? = world:linebreak-separator
  linebreak : xexpr? = '(br)
Within tagged-xexpr-elements, convert occurrences of linebreak-sep ("\n" by default) to linebreak, but only if linebreak-sep does not occur between blocks (see block-txexpr?). Why? Because block-level elements automatically display on a new line, so adding linebreak would be superfluous. In that case, linebreak-sep just disappears.

Examples:

> (detect-linebreaks '(div "Two items:" "\n" (em "Eggs") "\n" (em "Bacon")))

'(div "Two items:" (br) (em "Eggs") (br) (em "Bacon"))

> (detect-linebreaks '(div "Two items:" "\n" (div "Eggs") "\n" (div "Bacon")))

'(div "Two items:" (div "Eggs") (div "Bacon"))

procedure

(detect-paragraphs elements 
  [#:separator paragraph-sep 
  #:tag paragraph-tag 
  #:linebreak-proc linebreak-proc]) 
  txexpr-elements?
  elements : txexpr-elements?
  paragraph-sep : string? = world:paragraph-separator
  paragraph-tag : symbol? = 'p
  linebreak-proc : (txexpr-elements? . -> . txexpr-elements?)
   = detect-linebreaks
Find paragraphs within elements, as denoted by paragraph-sep, and wrap them with paragraph-tag, unless the element is already a block-txexpr? (because in that case, the wrapping is superfluous). Thus, as a consequence, if paragraph-sep occurs between two blocks, it’s ignored.

The paragraph-tag argument sets the tag used to wrap paragraphs.

The linebreak-proc argument allows you to use a different linebreaking procedure other than the usual detect-linebreaks.

Examples:

> (detect-paragraphs '("First para" "\n\n" "Second para"))

'((p "First para") (p "Second para"))

> (detect-paragraphs '("First para" "\n\n" "Second para" "\n" "Second line"))

'((p "First para") (p "Second para" (br) "Second line"))

> (detect-paragraphs '("First para" "\n\n" (div "Second block")))

'((p "First para") (div "Second block"))

> (detect-paragraphs '((div "First block") "\n\n" (div "Second block")))

'((div "First block") (div "Second block"))

> (detect-paragraphs '("First para" "\n\n" "Second para") #:tag 'ns:p)

'((ns:p "First para") (ns:p "Second para"))

> (detect-paragraphs '("First para" "\n\n" "Second para" "\n" "Second line")
  #:linebreak-proc (λ(x) (detect-linebreaks x #:insert '(newline))))

'((p "First para") (p "Second para" (newline) "Second line"))

 
\ No newline at end of file diff --git a/doc/File_formats.html b/doc/File_formats.html index 1e58b2f..741cfa4 100644 --- a/doc/File_formats.html +++ b/doc/File_formats.html @@ -1,2 +1,2 @@ -6 File formats
6.0.1.6

6 File formats

6.1 Source formats

 #lang pollen/pre package: pollen
 #lang pollen/markdown
 #lang pollen/markup
 #lang pollen/ptree

The Pollen language is divided into variants, or dialects, that are tailored to suit each of the core source formats.

These dialects can be invoked one of two ways: either by invoking a specific dialect in the first line of the file (also known as the #lang line), or by using the generic #lang pollen as the first line, and then the correct dialect will be automatically selected based on the source file extension.

If the #lang line specifies a dialect different from the one specified by the file extension, the #lang line will take precedence.

For ease of use, the behavior of the Pollen language departs from the standard Racket language in several ways. The differences are noted below.

6.1.1 Command syntax using ◊

Commands must start with the special lozenge character . Other material is interpreted as plain text. See ◊ command overview for more.

How is this different from Racket? In Racket, everything is a command, and plain text must be quoted.

6.1.2 Any command is valid

There are no undefined commands in Pollen. If a command has not already been defined, it’s treated as a tag function. See ◊ command overview for more.

How is this different from Racket? In Racket, if you try to treat an identifier as a function before defining it with define, you’ll get an error.

6.1.3 Standard exports

By default, every Pollen source file exports two symbols, which you can access by using the source file with require:

'doc contains the output of the file. The type of output depends on the source format (documented below).

'metas is a hash of key–value pairs with extra information that is extracted from the source. These 'metas will always contain the key 'here-path, which returns a string representation of the full path to the source file. Beyond that, the only 'metas are the ones that are specified within the source file (see the source formats below for more detail on how to specify metas).

How is this different from Racket? In Racket, you must explicitly define and then provide any values you want to export.

6.1.4 Custom exports

Any value or function that is defined within the source file using define is automatically exported.

How is this different from Racket? In Racket, you must explicitly provide any values you want to export. Unlike Racket, every Pollen source file impliedly uses (provide (all-defined-out)).

6.1.5 The project-require.rkt file

If a file called project-require.rkt exists in the same directory with a source file, it’s automatically imported when the source file is compiled.

How is this different from Racket? In Racket, you must explicitly import files using require.

6.1.6 Preprocessor (.pp extension)

Invoke the preprocessor dialect by using #lang pollen/pre as the first line of your source file, or by using #lang pollen with a file extension of .pp. These forms are equivalent:

"sample.css.pp"

#lang pollen
...source...

"sample.css"

#lang pollen/pre
...source...

When no dialect is explicitly specified by either the #lang line or the file extension, Pollen will default to using the preprocessor dialect. For instance, this file will be treated as preprocessor source:

"test.yyz"

#lang pollen
...source...

Of course, you’re better off specifying the preprocessor dialect explicitly rather than relying on this default behavior.

The output of the preprocessor dialect, provided by 'doc, is plain text.

6.1.7 Markdown (.pmd extension)

Invoke the Markdown dialect by using #lang pollen/markdown as the first line of your source file, or by using #lang pollen with a file extension of .pmd. These forms are equivalent:

"sample.txt.pmd"

#lang pollen
...source...

"sample.txt"

#lang pollen/markdown
...source...

The output of the Markdown dialect, provided by 'doc, is a tagged X-expression.

6.1.8 Markup (.pm extension)

Invoke the Pollen markup dialect by using #lang pollen/markup as the first line of your source file, or by using #lang pollen with a file extension of .pm. These forms are equivalent:

"about.html.pm"

#lang pollen
...source...

"about.html"

#lang pollen/markup
...source...

The output of the Pollen markup dialect, provided by 'doc, is a tagged X-expression.

6.1.9 Pagetree (.ptree extension)

Invoke the pagetree dialect by using #lang pollen/ptree as the first line of your source file, or by using #lang pollen with a file extension of .ptree. These forms are equivalent:

"main.ptree"

#lang pollen
...source...

"main.rkt"

#lang pollen/ptree
...source...

The output of the pagetree dialect, provided by 'doc, is a pagetree? that is checked for correctness using validate-pagetree.

6.2 Utility formats

These aren’t source formats because they don’t contain a #lang pollen line. But for convenience, they get special handling by the Pollen project server.

6.2.1 Scribble (.scrbl extension)

Scribble files are recognized by the project server and can be compiled and previewed in single-page mode.

6.2.2 Null (.p extension)

Files with the null extension are simply rendered as a copy of the file without the extension, so index.html.p becomes index.html.

This can be useful you’re managing your project with git. Most likely you’ll want to ignore *.html and other file types that are frequently regenerated by the project server. But if you have isolated static files — for instance, a index.html that doesn’t have source associated with it — they’ll be ignored too. You can cure this problem by appending the null extension to these static files, so they’ll be tracked in your source system without actually being source files.

 
\ No newline at end of file +7 File formats
6.0.1.6

7 File formats

7.1 Source formats

 #lang pollen/pre package: pollen
 #lang pollen/markdown
 #lang pollen/markup
 #lang pollen/ptree

The Pollen language is divided into variants, or dialects, that are tailored to suit each of the core source formats.

These dialects can be invoked one of two ways: either by invoking a specific dialect in the first line of the file (also known as the #lang line), or by using the generic #lang pollen as the first line, and then the correct dialect will be automatically selected based on the source file extension.

If the #lang line specifies a dialect different from the one specified by the file extension, the #lang line will take precedence.

For ease of use, the behavior of the Pollen language departs from the standard Racket language in several ways. The differences are noted below.

7.1.1 Command syntax using ◊

Commands must start with the special lozenge character . Other material is interpreted as plain text. See ◊ command overview for more.

How is this different from Racket? In Racket, everything is a command, and plain text must be quoted.

7.1.2 Any command is valid

There are no undefined commands in Pollen. If a command has not already been defined, it’s treated as a tag function. See ◊ command overview for more.

How is this different from Racket? In Racket, if you try to treat an identifier as a function before defining it with define, you’ll get an error.

7.1.3 Standard exports

By default, every Pollen source file exports two symbols, which you can access by using the source file with require:

'doc contains the output of the file. The type of output depends on the source format (documented below).

'metas is a hash of key–value pairs with extra information that is extracted from the source. These 'metas will always contain the key 'here-path, which returns a string representation of the full path to the source file. Beyond that, the only 'metas are the ones that are specified within the source file (see the source formats below for more detail on how to specify metas).

How is this different from Racket? In Racket, you must explicitly define and then provide any values you want to export.

7.1.4 Custom exports

Any value or function that is defined within the source file using define is automatically exported.

How is this different from Racket? In Racket, you must explicitly provide any values you want to export. Unlike Racket, every Pollen source file impliedly uses (provide (all-defined-out)).

7.1.5 The project-require.rkt file

If a file called project-require.rkt exists in the same directory with a source file, it’s automatically imported when the source file is compiled.

How is this different from Racket? In Racket, you must explicitly import files using require.

7.1.6 Preprocessor (.pp extension)

Invoke the preprocessor dialect by using #lang pollen/pre as the first line of your source file, or by using #lang pollen with a file extension of .pp. These forms are equivalent:

"sample.css.pp"

#lang pollen
...source...

"sample.css"

#lang pollen/pre
...source...

When no dialect is explicitly specified by either the #lang line or the file extension, Pollen will default to using the preprocessor dialect. For instance, this file will be treated as preprocessor source:

"test.yyz"

#lang pollen
...source...

Of course, you’re better off specifying the preprocessor dialect explicitly rather than relying on this default behavior.

The output of the preprocessor dialect, provided by 'doc, is plain text.

7.1.7 Markdown (.pmd extension)

Invoke the Markdown dialect by using #lang pollen/markdown as the first line of your source file, or by using #lang pollen with a file extension of .pmd. These forms are equivalent:

"sample.txt.pmd"

#lang pollen
...source...

"sample.txt"

#lang pollen/markdown
...source...

The output of the Markdown dialect, provided by 'doc, is a tagged X-expression.

7.1.8 Markup (.pm extension)

Invoke the Pollen markup dialect by using #lang pollen/markup as the first line of your source file, or by using #lang pollen with a file extension of .pm. These forms are equivalent:

"about.html.pm"

#lang pollen
...source...

"about.html"

#lang pollen/markup
...source...

The output of the Pollen markup dialect, provided by 'doc, is a tagged X-expression.

7.1.9 Pagetree (.ptree extension)

Invoke the pagetree dialect by using #lang pollen/ptree as the first line of your source file, or by using #lang pollen with a file extension of .ptree. These forms are equivalent:

"main.ptree"

#lang pollen
...source...

"main.rkt"

#lang pollen/ptree
...source...

The output of the pagetree dialect, provided by 'doc, is a pagetree? that is checked for correctness using validate-pagetree.

7.2 Utility formats

These aren’t source formats because they don’t contain a #lang pollen line. But for convenience, they get special handling by the Pollen project server.

7.2.1 Scribble (.scrbl extension)

Scribble files are recognized by the project server and can be compiled and previewed in single-page mode.

7.2.2 Null (.p extension)

Files with the null extension are simply rendered as a copy of the file without the extension, so index.html.p becomes index.html.

This can be useful you’re managing your project with git. Most likely you’ll want to ignore *.html and other file types that are frequently regenerated by the project server. But if you have isolated static files — for instance, a index.html that doesn’t have source associated with it — they’ll be ignored too. You can cure this problem by appending the null extension to these static files, so they’ll be tracked in your source system without actually being source files.

 
\ No newline at end of file diff --git a/doc/First__a_poem.html b/doc/First__a_poem.html new file mode 100644 index 0000000..4175130 --- /dev/null +++ b/doc/First__a_poem.html @@ -0,0 +1,10 @@ + +5 First, a poem
6.0.1.6

5 First, a poem

In this tutorial, you’ll use Pollen to make a single HTML page with a poem. You’ll learn about:

  • The relationship of Racket & Pollen

  • DrRacket

  • The project server

  • The preprocessor

If you want the shortest possible introduction to Pollen, try the Quick tour.

5.1 Prerequisites

I’m going to assume that you’ve already installed Racket and Pollen. If not, do that now.

I’m also going to assume you know the basics of using a command line to run programs and navigate the file system using commands like cd and ls. On Mac OS X, your command-line program is called Terminal; on Windows it’s the Windows Command Processor.

5.2 The relationship of Racket & Pollen

As I mentioned in the The big picture, Pollen is built using Racket, and everything in Pollen ultimately becomes Racket code. If you’re comfortable with that idea, you may move along.

But if not, or if you’re just a curious character:

One of the key features of Racket as a programming language is that it provides tools to create other programming languages. These languages might look & behave like Racket. Or they might not. These languages might serve a general purpose, but more often they’re specialized for a particular purpose, in which case they’re known as domain-specific languages, or DSLs.

Racket exploits the fact that under the hood, all programming languages are basically doing the same thing. (CS jocks know this more formally as a side effect of Turing completeness.) Racket starts with the most general expression of a Turing-complete language — called the lambda calculus — and lets users build on that. In most programming languages, you can build functions, classes, and modules. But in Racket, you can alter anything about the language.

If you find this a strange idea, you’re not alone. Most programmers — and until recently, me too — have never made or used DSLs. If you have a programming problem to solve, you start with a general-purpose language like Python or Java or Ruby, and go from there. Nothing wrong with that.

But programming languages contain their own design choices and compromises. Sometimes the problem at hand is best solved by manipulating the language at a deeper level. When you make a DSL, you’re still programming in the underlying language, but doing so at a point of higher leverage.

Pollen is a DSL implemented in Racket. It is a close cousin of Scribble: The Racket Documentation Tool, another Racket DSL, which was designed for writing Racket documentation. The key feature of Scribble, and thus also of Pollen, is that it’s text-based. Meaning, whereas most languages have source files made of code with text embedded within, Pollen’s source files are text with code embedded within.

Moreover, Pollen is meant to be a small step away from Racket — you can think of it as a more convenient notation system for Racket code, similar to how Markdown is a more convenient notation for HTML. But unlike Markdown, which only lets you access a subset of HTML, anything that can be done in Racket can also be done in Pollen.

As you work more with Pollen, you’ll pick up more about how Pollen corresponds to Racket (see ◊ command overview) and easily be able to convert commands from one system to the other. In later tutorials, you’ll see how larger Pollen projects are made out of both Pollen and Racket source files.

But in smaller projects, like this one, you can just use Pollen.

5.3 Starting a new file in DrRacket

DrRacket is the IDE for the Racket programming language, and other languages made with Racket (like Pollen). IDE stands for “Integrated Development Environment,” which is a fancy phrase for “a nice place to edit and run your code.” DrRacket is installed as part of the core Racket distribution.

If you’ve worked with languages like Perl, Python, or Ruby, you may be more familiar with using a general-purpose text editor to edit your code, and then running your program at the command line. You can do that with Racket too. But DrRacket is a considerately designed tool. I recommend it. For these tutorials, I’ll assume you’re using DrRacket. If you insist on using the command line, I trust you to figure out what you need to do to keep up.

Launch DrRacket. Start a new file. The code in the file will look like this:

#lang racket

Within the main window, you should also see an interactions window, which shows the output of the current file, and starts out looking something like this (details, like the version number, will vary):

Welcome to DrRacket, version 6.0.1.6--2013-11-26(-/f) [3m].

Language: racket; memory limit: 1000 MB.

>

If you don’t see the interactions window, select View|Show Interactions from the menu.

5.3.1 Setting the #lang line

The first line of every Racket source file, and every Pollen source file, is called the #lang line. The #lang line identifies the language used to interpret the rest of the file.

For more about the #lang line, see The #lang Shorthand.

When you start a new Pollen source file in DrRacket, you’ll need to change the #lang line to the Pollen language. The simplest way is to change the first line to this:

#lang pollen

Now run your file by clicking the Run button in the upper-right corner, or select Racket|Run from the menu. You’ll get something like:

Welcome to DrRacket, version 6.0.1.6--2013-11-26(-/f) [3m].

Language: pollen; memory limit: 1000 MB.

>

Notice that the language is now reported as pollen. If you like, change the #lang line to this:

#lang pollenxyz

Then click Run again. DrRacket will print an error:

Module Language: invalid module text +
standard-module-name-resolver: collection not found ...

Why? Because there’s no language called pollenxyz. Switch it back to pollen and let’s move on.

5.3.2 Putting in the text of the poem

Here’s a short, bad poem I wrote about CSS.

The margin is 42em.

The border is red.

The padding is 15em.

The border is too.

Paste the text of this poem into your DrRacket editing window, below the #lang line, so it looks like this:

#lang pollen

 

The margin is 42em.

The border is red.

The padding is 15em.

The border is too.

Run the file again. In the interactions window, you’ll see:

The margin is 8em. +
The border is blue. +
The padding is 2em. +
The border is too.

This shows you something important: by default, any plain text in a Pollen source file is simply printed as written when you Run the file (minus the #lang line, which is just for Racket’s benefit). If you like, edit the text of the poem and click Run again. You’ll see the updated text printed in the interactions window.

5.3.3 Saving & naming your source file

File naming in Pollen is consequential.

Ultimately, every Pollen source file in your project will be rendered into an output file. Each Pollen source file corresponds to one output file. The name of this output file will be the name of the source file minus the Pollen source extension. So a source file called file.txt.pp will become file.txt.

Thus, to build the name of a source file, we take the name we want for the output file and add the appropriate Pollen file extension. Different Pollen source files use different extensions — but more about that later. For now, the extension you’ll use for your source is .pp.

In this case, let’s say we want to end up with a file called poem.html. Therefore, the name of our source file needs to be:

the output name poem.html + the source extension .pp = poem.html.pp

(If you want to name the file something-else.html.pp, be my guest. There’s no magic associated with the prefix.)

You’re welcome to change the name of your source files from the desktop. On Mac OS X and Windows, however, the desktop interface often hides file extensions, so check the properties of the file afterward to make sure you got the name you expected.

In a convenient location (e.g., your home directory or the desktop) create a new directory for your project called tutorial. In this new directory, save your DrRacket file as poem.html.pp.

"/path/to/tutorial/poem.html.pp"

#lang pollen

 

The margin is 42em.

The border is red.

The padding is 15em.

The border is too.

5.4 Using the project server

The project server is a web server built into Pollen. Just as DrRacket lets you run individual files and see if they work as you expect, the project server lets you preview and test your project as a real website. While working on your Pollen project, you may find it convenient to have DrRacket open on half your screen, and on the other half, a web browser pointing at the project server.

“Why can’t I just open the HTML files directly in my browser?” If you want to keep making web pages the way we did in 1996, go ahead. But that approach has several shortcomings. First, when you open files directly in your browser, you’re cruising the local filesystem, and absolute URLs (the kind that start with a /) won’t work. Second, if you want to test your website on devices other than your own machine — well, you can’t. Third, you have to render your HTML files in advance, whereas the project server is clever about doing this dynamically.

So use the project server.

A note about security. The project server isn’t intended for real-world use, but rather as a development tool. That said, once you start the project server, it’s an actual web server running on your machine, and it will respond to requests from any computer. If you want to limit traffic to your local network, or certain machines on your local network, it’s your job — not mine — to configure your firewall or other network security measures accordingly.

5.4.1 Starting the project server with raco pollen

Before we start the project server, a word about the raco pollen command.

When you installed Racket, Racket installed a utility program called raco. This name is short for Racket command, and raco acts as a hub for — you guessed it — Racket commands. You used it when you first installed Pollen:

> raco pkg install pollen

The first argument after raco is the subcommand. For instance, raco pkg ... lets you install, update, and remove packages like so:

> raco pkg update pollen

> raco pkg remove pollen

Likewise, raco pollen lets you issue commands relevant to Pollen, like starting the project server. (See Using raco pollen for a full description of available commands.)

Now we’ll start the project server. Go to your command line and enter the following:

> cd /path/to/tutorial

> raco pollen start

Windows users, I’ll trust you to convert raco into the appropriate command for your system — assuming defaults, it’s likely to be "C:\Program Files\Racket\raco" (include the surrounding quotes in the command).

After a moment, you’ll see a startup message like this:

Welcome to Pollen 0.001 (Racket 6.x.x.x)

Project root is /path/to/tutorial

Project server is http://localhost:8080 (Ctrl-C to exit)

Project dashboard is http://localhost:8080/index.ptree

Ready to rock

Project root means the directory that the project server was started in, and which it’s treating as its root directory. Any absolute URLs (i.e., those beginning with /) will resolve into this directory. So a URL like /styles.css will impliedly become /path/to/tutorial/styles.css.

If you use the bare command raco pollen start, the project server will start in the current directory. But if you want to start the project server elsewhere, you can add that directory as an argument like this:

> raco pollen start /some/other/path

The next line of the startup message tells you that the web address of the project server is http://localhost:8080. This is the address you put into your web browser to test your project. If you’re unfamiliar with this style of URL, localhost refers to your own machine, and 8080 is the network port where the project server will respond to browser requests.

If you want to access the project server from a different machine, you can’t use localhost. But you can use the IP address of the machine running the project server (e.g., http://192.168.1.10:8080) or any name for that machine available through local DNS (e.g., http://mb-laptop:8080).

Though port 8080 is the default, you can start the project server on any port you like by adding it as an argument to raco pollen start:

> raco pollen start /path/to/tutorial

> raco pollen start /path/to/tutorial 8088

You can also change the default port by altering world:default-port, or parameterizing it with world:current-server-port.

Note that when you pass a port argument, you also have to pass a path argument. If you want the project server to start in the current directory, you can use the usual . shorthand:

> cd /path/to/tutorial

> raco pollen start 8088

/path/to/tutorial/8088 is not a directory

> raco pollen start . 8088

You can run multiple project servers simultaneously. Just start them on different ports so they don’t conflict with each other.

Your terminal window will report status and error messages from the project server as it runs. Use Ctrl-C to stop the server.

5.4.2 Using the dashboard

For each directory in your project, starting at the top, the project server displays a dashboard in your web browser. The dashboard gives you an overview of the files in the directory, and links to view them.

The address of the top-level dashboard is http://localhost:8080/index.ptree. Other dashboards follow the same pattern (e.g., http://localhost:8080/path/to/dir/index.ptree.)

Note that the dashboard is not at http://localhost:8080/ or its equivalent, http://localhost:8080/index.html. Why? So it doesn’t interfere with any index.html that you may want to put in your project.

Thus, index.ptree. The .ptree extension is short for pagetree. In Pollen, a pagetree is a hierarchical list of pages. We’ll do more with pagetrees in a later tutorial. For now, just be aware that to generate the dashboard, the project server will first look for an actual index.ptree file in each directory. If it doesn’t find one, it will generate a pagetree from a listing of files in the directory.

Let’s look at the root-level dashboard for our project. First, make sure your project server is running:

> cd /path/to/tutorial

> raco pollen start

Then, in your web browser, visit http://localhost:8080/index.ptree.

You should see something like this:

The top line tells us that we’re in the root directory of the project. We didn’t make an explicit index.ptree file, so the project server just shows us a directory listing.

5.4.3 Source files in the dashboard

We see the only file, poem.html.pp. Note that the .pp extension is grayed out. The dashboard automatically consolidates references to source and output files into a single entry. What this entry says is “The directory contains a source file in .pp format for the output file poem.html.”

Every source-file entry in the dashboard has three links. The first link is attached to the filename itself, and takes you to a preview of the output file. If the output file doesn’t yet exist — as is the case here — it will be dynamically rendered. (This is true whether you click its name in the dashboard, or link to it from another page.) So click the filename. You’ll see in your web browser:

The margin is 42em. The border is red. The padding is 15em. The border is too.

Granted, this is a boring web page. The main point here is that you’re seeing the output from your source file, which didn’t exist before. Notice that the address bar says http://localhost:8080/poem.html, not poem.html.pp. And if you look in your tutorial directory, you’ll see a new file called poem.html.

In other words, when you clicked on the filename link in the dashboard, Pollen rendered the output file from your source file and saved it in your project directory. As promised earlier, the name of the output file (poem.html) is the name of the source file (poem.html.pp) minus the Pollen extension (.pp).

If you go back to the dashboard and click on the filename link again, you’ll see the same output file. If the source file hasn’t changed, Pollen will just show you the output file that’s already been rendered.

But if you like, open your poem.html.pp source file in DrRacket, edit the first line, and save the file:

#lang pollen

 

The cave is pitch black.

Look out for the grue.

The padding is 15em.

The border is too.

Go back to the dashboard and click on the filename. This time, you’ll see:

The cave is pitch black. Look out for the grue. The padding is 15em. The border is too.

Here, Pollen notices that the source file has changed, so it refreshes the output file. This makes it convenient to work between DrRacket and your web browser, editing source and then reloading to see the changes.

The other two links in the dashboard are labeled in and out.

The link labeled in will display the contents of the source file:

#lang pollen

 

The cave is pitch black.

Look out for the grue.

The padding is 15em.

The border is too.

The link labeled out will display the contents of the output file (just like the “view source” option in your web browser):

The cave is pitch black.

Look out for the grue.

The padding is 15em.

The border is too.

For now, the files are identical except for the #lang line. But let’s change that.

5.5 Working with the preprocessor

Pollen can operate in several processing modes. One of these is preprocessor mode. A preprocessor is a tool for making systematic, automated changes to a file, often in contemplation of further processing (hence the pre-). You can use the Pollen preprocessor this way. Or you can just use it on its own, and leave your files in a finished state.

That’s how we’ll use it in this tutorial. We’ll build out our poem.html.pp source file so that it exits the preprocessor as a legit HTML file.

5.5.1 Setting up a preprocessor source file

The file extension of a Pollen source file tells Pollen what kind of processing to apply to it. The “.pp” file extension stands for “Pollen preprocessor.” You can use the preprocessor with any text-based file by: +
  • inserting #lang pollen as the first line,

  • adding the .pp file extension,

  • running it through Pollen.

For more about the Pollen processing modes and how to invoke them, see File.

“The preprocessor be used with any kind of text-based file?” Right. “But how?” The preprocessor reads the source file, handles any Pollen commands it finds, and lets the rest of the content pass through untouched. To the preprocessor, it’s all just text data. It doesn’t care whether that text represents HTML, CSS, JavaScript, or even TI-BASIC.

Because the preprocessor only deals in text, the Pollen commands you use in the preprocessor also have to produce text. Moreover, Pollen doesn’t enforce the semantics of the underlying file — that’s your responsibility. For instance, Pollen won’t stop you from doing nonsensical things like this:

"bad-poem.html.pp"

#lang pollen

 

The cave is pitch black.

Look out for the grue.

◊(insert-mp3-recording-of-scream)

Here, the result is not going to be valid HTML, because you can’t simply drop binary data in the middle of an HTML file. To paraphrase Mr. Babbage — garbage in, garbage out.

I’ve encouraged you to mess with the source file, but let’s return it to its original state:

"/path/to/tutorial/poem.html.pp"

#lang pollen

 

The margin is 42em.

The border is red.

The padding is 15em.

The border is too.

This file has #lang pollen as the first line, and .pp as the file extension, so it meets the minimum requirements for the preprocessor.

5.5.2 Creating valid HTML output

Let’s update our source so it produces valid HTML. Edit the source as follows:

"/path/to/tutorial/poem.html.pp"

#lang pollen

<!DOCTYPE html>

<html>

<body>

<pre>

The margin is 42em.

The border is red.

The padding is 15em.

The border is too.

</pre>

</body>

</html>

Return to the project server and view http://localhost:8080/poem.html. Earlier, the output looked like this:

The margin is 42em. The border is red. The padding is 15em. The border is too.

But now, because of the <pre> tag, the poem will appear in a monospaced font, and the line breaks will be preserved:

The margin is 42em. +
The border is red. +
The padding is 15em. +
The border is too.

As before, because the source has changed, Pollen refreshes the output file. From the dashboard, you can use the in and out links to inspect the source and output.

This is now a valid HTML page.

5.5.3 Adding commands

I mentioned that the preprocessor reads the file and handles any Pollen commands it finds. But our source file doesn’t have any commands yet. Let’s add some.

Pollen commands can be embedded in your source file using one of two modes: Racket mode or text mode. We’ll try text mode in a later tutorial. For now, we’ll use Racket mode.

To make a Racket-mode Pollen command, just take any Racket expression and put the lozenge character () in front of it. For instance, these are valid Racket expressions:

(define inner 2)

(define edge (* inner 4))

(define color "blue")

And these are the equivalent commands in Pollen:

◊(define inner 2)

◊(define edge (* inner 4))

◊(define color "blue")

5.5.4 Racket basics (if you’re not familiar)

“But how am I supposed to know Racket?” You don’t. So we’ll start now. Here are the five basic rules of Racket:

  1. The core building block of Racket is the expression. An expression can be a value (like 2 or "blue"), a variable (like edge), or a function call (like (* inner 4)).

  2. Every expression is evaluated to produce a value.

  3. A variable evaluates to whatever value it holds (so inner would become 2). A function call evaluates to its return value (so (+ 1 1) would become 2).

  4. Function calls go between parentheses. Unlike most languages, the function name comes first, followed by its arguments (so it’s (* inner 4), not (inner * 4)). This is called prefix notation.

  5. Expressions can contain recursively nested expressions. Thus, (* inner 4) could be written (* inner (+ 2 2)) or (* inner (+ (+ 1 1) (+ 1 1))).

Newcomers to Racket often gripe about prefix notation and the parentheses. If you need to get it out of your system, go ahead. Keep in mind, however, that it’s not some peculiar affectation, but rather a necessary consequence of rule #1. As you’ll come to learn, rule #1 is where the magic happens.

That should tell you enough to infer what’s going on in the Pollen commands above:

◊(define inner 2)

◊; create a variable 'inner' that holds the value 2

◊(define edge (* inner 4))

◊; create a variable 'edge' that's four times the value of 'inner'

◊(define color "blue")

◊; create a variable 'color' that holds the value "blue"

To learn more about Racket syntax, consider a detour through the excellent Quick: An Introduction to Racket with Pictures.

5.5.5 Defining variables with commands

Let’s use commands to define variables that will hold some values for our page. First, add a <head> tag to your source file, and three commmands to define three variables:

"/path/to/tutorial/poem.html.pp"

#lang pollen

<!DOCTYPE html>

<html>

<head>

◊(define inner 2)

◊(define edge (* inner 4))

◊(define color "blue")

</head>

<body>

<pre>

The margin is 42em.

The border is red.

The padding is 15em.

The border is too.

</pre>

</body>

</html>

Then look at http://localhost:8080/poem.html again. Does it look the same? Not a trick question — it should. If you click the Out link on the dashboard, you’ll see this:

<!DOCTYPE html>

<html>

<head>

 

 

 

</head>

<body>

<pre>

The margin is 42em.

The border is red.

The padding is 15em.

The border is too.

</pre>

</body>

</html>

What’s happening here? Our ◊(define ...) commands just define variables, so they don’t evaluate to any value. Instead, we get blank lines. So far, so good.

5.5.6 Inserting values from variables

To insert the value of a variable in our file, we use the command ◊|variable-name|. Let’s do that now:

"/path/to/tutorial/poem.html.pp"

#lang pollen

<!DOCTYPE html>

<html>

<head>

◊(define inner 2)

◊(define edge (* inner 4))

◊(define color "blue")

</head>

<body>

<pre>

The margin is ◊|edge|em.

The border is ◊|color|.

The padding is ◊|inner|em.

The border is too.

</pre>

</body>

</html>

Here, we’re replacing three values in the poem with the variables containing those values — ◊|edge|, ◊|color|, and ◊|inner|. Reload the file in the project server, and you’ll see:

The margin is 8em.

The border is blue.

The padding is 2em.

The border is too.

Hey, look at that — the text of the poem changed. Now it even rhymes.

If you like, in the source file, edit the variable definitions with different values and reload the page in the project server. The page will be rendered afresh with the new values. In particular, if you update inner, you’ll also see edge change, since its value depends on inner.

5.5.7 Inserting variables within CSS

Our poem makes claims about the margin, border, and padding of the page that aren’t yet true. To fix this, we’ll rely on the same basic technique of inserting variables into our HTML file. But instead of putting them in the <body> of the page, we’ll put them in a CSS <style> tag.

Update the <head> section of the page with a new <style> tag that defines a style for pre like so, using our variables for the relevant values:

"/path/to/tutorial/poem.html.pp"

#lang pollen

<!DOCTYPE html>

<html>

<head>

◊(define inner 2)

◊(define edge (* inner 4))

◊(define color "blue")

<style type="text/css">

pre {

    margin: ◊|edge|em;

    border: ◊|inner|em solid ◊|color|;

    padding: ◊|inner|em;

}

</style>

</head>

<body>

<pre>

The margin is ◊|edge|em.

The border is ◊|color|.

The padding is ◊|inner|em.

The border is too.

</pre>

</body>

</html>

Notice that we’re using the same ◊|variable-name| pattern as before to insert the variable values.

What do we expect to see? We expect that the padding and border will be 2em wide, because inner is 2. We expect the margin to be 8em, because it’s equal to edge, which is inner multiplied by 4. And we expect the color of the border to be "blue", because that’s the value of the variable color.

And indeed, when you reload the file in the project server, you’ll see exactly that:

As before, if you edit the values of the variables in the source file and reload in the project server, you’ll see both the text and the layout change.

5.6 First tutorial complete

This was a sneaky tutorial. The HTML page we made was very simple, but in building it, we covered many important points about how Pollen works.

Feel free to go back and experiment with what you’ve learned. The next tutorial will assume that you’re comfortable with all the material here.

 
\ No newline at end of file diff --git a/doc/First_tutorial.html b/doc/First_tutorial.html new file mode 100644 index 0000000..bc457e4 --- /dev/null +++ b/doc/First_tutorial.html @@ -0,0 +1,10 @@ + +5 First tutorial
6.0.1.6

5 First tutorial

In this tutorial, you’ll use Pollen to make a single HTML page with a poem. You’ll learn about:

  • The relationship of Racket & Pollen

  • DrRacket

  • The project server

  • The preprocessor

If you want the shortest possible introduction to Pollen, try the Quick tour.

5.1 Prerequisites

I’m going to assume that you’ve already installed Racket and Pollen. If not, do that now.

I’m also going to assume you know the basics of using a command line to run programs and navigate the file system using commands like cd and ls. On Mac OS X, your command-line program is called Terminal; on Windows it’s the Windows Command Processor.

5.2 The relationship of Racket & Pollen

As I mentioned in the The big picture, Pollen is built using Racket, and everything in Pollen ultimately becomes Racket code. If you’re comfortable with that idea, you may move along.

But if not, or if you’re just a curious character:

One of the key features of Racket as a programming language is that it provides tools to create other programming languages. These languages might look & behave like Racket. Or they might not. These languages might serve a general purpose, but more often they’re specialized for a particular purpose, in which case they’re known as domain-specific languages, or DSLs.

Racket exploits the fact that under the hood, all programming languages are basically doing the same thing. (CS jocks know this more formally as a side effect of Turing completeness.) Racket starts with the most general expression of a Turing-complete language — called the lambda calculus — and lets users build on that. In most programming languages, you can build functions, classes, and modules. But in Racket, you can alter anything about the language.

If you find this a strange idea, you’re not alone. Most programmers — and until recently, me too — have never made or used DSLs. If you have a programming problem to solve, you start with a general-purpose language like Python or Java or Ruby, and go from there. Nothing wrong with that.

But programming languages contain their own design choices and compromises. Sometimes the problem at hand is best solved by manipulating the language at a deeper level. When you make a DSL, you’re still programming in the underlying language, but doing so at a point of higher leverage.

Pollen is a DSL implemented in Racket. It is a close cousin of Scribble: The Racket Documentation Tool, another Racket DSL, which was designed for writing Racket documentation. The key feature of Scribble, and thus also of Pollen, is that it’s text-based. Meaning, whereas most languages have source files made of code with text embedded within, Pollen’s source files are text with code embedded within.

Moreover, Pollen is meant to be a small step away from Racket — you can think of it as a more convenient notation system for Racket code, similar to how Markdown is a more convenient notation for HTML. But unlike Markdown, which only lets you access a subset of HTML, anything that can be done in Racket can also be done in Pollen.

As you work more with Pollen, you’ll pick up more about how Pollen corresponds to Racket (see ◊ command overview) and easily be able to convert commands from one system to the other. In later tutorials, you’ll see how larger Pollen projects are made out of both Pollen and Racket source files.

But in smaller projects, like this one, you can just use Pollen.

5.3 Starting a new file in DrRacket

DrRacket is the IDE for the Racket programming language, and other languages made with Racket (like Pollen). IDE stands for “Integrated Development Environment,” which is a fancy phrase for “a nice place to edit and run your code.” DrRacket is installed as part of the core Racket distribution.

If you’ve worked with languages like Perl, Python, or Ruby, you may be more familiar with using a general-purpose text editor to edit your code, and then running your program at the command line. You can do that with Racket too. But DrRacket is a considerately designed tool. I recommend it. For these tutorials, I’ll assume you’re using DrRacket. If you insist on using the command line, I trust you to figure out what you need to do to keep up.

Launch DrRacket. Start a new file. The code in the file will look like this:

#lang racket

Within the main window, you should also see an interactions window, which shows the output of the current file, and starts out looking something like this (details, like the version number, will vary):

Welcome to DrRacket, version 6.0.1.6--2013-11-26(-/f) [3m].

Language: racket; memory limit: 1000 MB.

>

If you don’t see the interactions window, select View|Show Interactions from the menu.

5.3.1 Setting the #lang line

The first line of every Racket source file, and every Pollen source file, is called the #lang line. The #lang line identifies the language used to interpret the rest of the file.

For more about the #lang line, see The #lang Shorthand.

When you start a new Pollen source file in DrRacket, you’ll need to change the #lang line to the Pollen language. The simplest way is to change the first line to this:

#lang pollen

Now run your file by clicking the Run button in the upper-right corner, or select Racket|Run from the menu. You’ll get something like:

Welcome to DrRacket, version 6.0.1.6--2013-11-26(-/f) [3m].

Language: pollen; memory limit: 1000 MB.

>

Notice that the language is now reported as pollen. If you like, change the #lang line to this:

#lang pollenxyz

Then click Run again. DrRacket will print an error:

Module Language: invalid module text +
standard-module-name-resolver: collection not found ...

Why? Because there’s no language called pollenxyz. Switch it back to pollen and let’s move on.

5.3.2 Putting in the text of the poem

Here’s a short, bad poem I wrote about CSS.

The margin is 42em.

The border is red.

The padding is 15em.

The border is too.

Paste the text of this poem into your DrRacket editing window, below the #lang line, so it looks like this:

#lang pollen

 

The margin is 42em.

The border is red.

The padding is 15em.

The border is too.

Run the file again. In the interactions window, you’ll see:

The margin is 8em. +
The border is blue. +
The padding is 2em. +
The border is too.

This shows you something important: by default, any plain text in a Pollen source file is simply printed as written when you Run the file (minus the #lang line, which is just for Racket’s benefit). If you like, edit the text of the poem and click Run again. You’ll see the updated text printed in the interactions window.

5.3.3 Saving & naming your source file

File naming in Pollen is consequential.

Ultimately, every Pollen source file in your project will be rendered into an output file. Each Pollen source file corresponds to one output file. The name of this output file will be the name of the source file minus the Pollen source extension. So a source file called file.txt.pp will become file.txt.

Thus, to build the name of a source file, we take the name we want for the output file and add the appropriate Pollen file extension. Different Pollen source files use different extensions — but more about that later. For now, the extension you’ll use for your source is .pp.

In this case, let’s say we want to end up with a file called poem.html. Therefore, the name of our source file needs to be:

the output name poem.html + the source extension .pp = poem.html.pp

(If you want to name the file something-else.html.pp, be my guest. There’s no magic associated with the prefix.)

You’re welcome to change the name of your source files from the desktop. On Mac OS X and Windows, however, the desktop interface often hides file extensions, so check the properties of the file afterward to make sure you got the name you expected.

In a convenient location (e.g., your home directory or the desktop) create a new directory for your project called tutorial. In this new directory, save your DrRacket file as poem.html.pp.

"/path/to/tutorial/poem.html.pp"

#lang pollen

 

The margin is 42em.

The border is red.

The padding is 15em.

The border is too.

5.4 Using the project server

The project server is a web server built into Pollen. Just as DrRacket lets you run individual files and see if they work as you expect, the project server lets you preview and test your project as a real website. While working on your Pollen project, you may find it convenient to have DrRacket open on half your screen, and on the other half, a web browser pointing at the project server.

“Why can’t I just open the HTML files directly in my browser?” If you want to keep making web pages the way we did in 1996, go ahead. But that approach has several shortcomings. First, when you open files directly in your browser, you’re cruising the local filesystem, and absolute URLs (the kind that start with a /) won’t work. Second, if you want to test your website on devices other than your own machine — well, you can’t. Third, you have to render your HTML files in advance, whereas the project server is clever about doing this dynamically.

So use the project server.

A note about security. The project server isn’t intended for real-world use, but rather as a development tool. That said, once you start the project server, it’s an actual web server running on your machine, and it will respond to requests from any computer. If you want to limit traffic to your local network, or certain machines on your local network, it’s your job — not mine — to configure your firewall or other network security measures accordingly.

5.4.1 Starting the project server with raco pollen

Before we start the project server, a word about the raco pollen command.

When you installed Racket, Racket installed a utility program called raco. This name is short for Racket command, and raco acts as a hub for — you guessed it — Racket commands. You used it when you first installed Pollen:

> raco pkg install pollen

The first argument after raco is the subcommand. For instance, raco pkg ... lets you install, update, and remove packages like so:

> raco pkg update pollen

> raco pkg remove pollen

Likewise, raco pollen lets you issue commands relevant to Pollen, like starting the project server. (See Using raco pollen for a full description of available commands.)

Now we’ll start the project server. Go to your command line and enter the following:

> cd /path/to/tutorial

> raco pollen start

Windows users, I’ll trust you to convert raco into the appropriate command for your system — assuming defaults, it’s likely to be "C:\Program Files\Racket\raco" (include the surrounding quotes in the command).

After a moment, you’ll see a startup message like this:

Welcome to Pollen 0.001 (Racket 6.x.x.x)

Project root is /path/to/tutorial

Project server is http://localhost:8080 (Ctrl-C to exit)

Project dashboard is http://localhost:8080/index.ptree

Ready to rock

Project root means the directory that the project server was started in, and which it’s treating as its root directory. Any absolute URLs (i.e., those beginning with /) will resolve into this directory. So a URL like /styles.css will impliedly become /path/to/tutorial/styles.css.

If you use the bare command raco pollen start, the project server will start in the current directory. But if you want to start the project server elsewhere, you can add that directory as an argument like this:

> raco pollen start /some/other/path

The next line of the startup message tells you that the web address of the project server is http://localhost:8080. This is the address you put into your web browser to test your project. If you’re unfamiliar with this style of URL, localhost refers to your own machine, and 8080 is the network port where the project server will respond to browser requests.

If you want to access the project server from a different machine, you can’t use localhost. But you can use the IP address of the machine running the project server (e.g., http://192.168.1.10:8080) or any name for that machine available through local DNS (e.g., http://mb-laptop:8080).

Though port 8080 is the default, you can start the project server on any port you like by adding it as an argument to raco pollen start:

> raco pollen start /path/to/tutorial

> raco pollen start /path/to/tutorial 8088

You can also change the default port by altering world:default-port, or parameterizing it with world:current-server-port.

Note that when you pass a port argument, you also have to pass a path argument. If you want the project server to start in the current directory, you can use the usual . shorthand:

> cd /path/to/tutorial

> raco pollen start 8088

/path/to/tutorial/8088 is not a directory

> raco pollen start . 8088

You can run multiple project servers simultaneously. Just start them on different ports so they don’t conflict with each other.

Your terminal window will report status and error messages from the project server as it runs. Use Ctrl-C to stop the server.

5.4.2 Using the dashboard

For each directory in your project, starting at the top, the project server displays a dashboard in your web browser. The dashboard gives you an overview of the files in the directory, and links to view them.

The address of the top-level dashboard is http://localhost:8080/index.ptree. Other dashboards follow the same pattern (e.g., http://localhost:8080/path/to/dir/index.ptree.)

Note that the dashboard is not at http://localhost:8080/ or its equivalent, http://localhost:8080/index.html. Why? So it doesn’t interfere with any index.html that you may want to put in your project.

Thus, index.ptree. The .ptree extension is short for pagetree. In Pollen, a pagetree is a hierarchical list of pages. We’ll do more with pagetrees in a later tutorial. For now, just be aware that to generate the dashboard, the project server will first look for an actual index.ptree file in each directory. If it doesn’t find one, it will generate a pagetree from a listing of files in the directory.

Let’s look at the root-level dashboard for our project. First, make sure your project server is running:

> cd /path/to/tutorial

> raco pollen start

Then, in your web browser, visit http://localhost:8080/index.ptree.

You should see something like this:

The top line tells us that we’re in the root directory of the project. We didn’t make an explicit index.ptree file, so the project server just shows us a directory listing.

5.4.3 Source files in the dashboard

We see the only file, poem.html.pp. Note that the .pp extension is grayed out. The dashboard automatically consolidates references to source and output files into a single entry. What this entry says is “The directory contains a source file in .pp format for the output file poem.html.”

Every source-file entry in the dashboard has three links. The first link is attached to the filename itself, and takes you to a preview of the output file. If the output file doesn’t yet exist — as is the case here — it will be dynamically rendered. (This is true whether you click its name in the dashboard, or link to it from another page.) So click the filename. You’ll see in your web browser:

The margin is 42em. The border is red. The padding is 15em. The border is too.

Granted, this is a boring web page. The main point here is that you’re seeing the output from your source file, which didn’t exist before. Notice that the address bar says http://localhost:8080/poem.html, not poem.html.pp. And if you look in your tutorial directory, you’ll see a new file called poem.html.

In other words, when you clicked on the filename link in the dashboard, Pollen rendered the output file from your source file and saved it in your project directory. As promised earlier, the name of the output file (poem.html) is the name of the source file (poem.html.pp) minus the Pollen extension (.pp).

If you go back to the dashboard and click on the filename link again, you’ll see the same output file. If the source file hasn’t changed, Pollen will just show you the output file that’s already been rendered.

But if you like, open your poem.html.pp source file in DrRacket, edit the first line, and save the file:

#lang pollen

 

The cave is pitch black.

Look out for the grue.

The padding is 15em.

The border is too.

Go back to the dashboard and click on the filename. This time, you’ll see:

The cave is pitch black. Look out for the grue. The padding is 15em. The border is too.

Here, Pollen notices that the source file has changed, so it refreshes the output file. This makes it convenient to work between DrRacket and your web browser, editing source and then reloading to see the changes.

The other two links in the dashboard are labeled in and out.

The link labeled in will display the contents of the source file:

#lang pollen

 

The cave is pitch black.

Look out for the grue.

The padding is 15em.

The border is too.

The link labeled out will display the contents of the output file (just like the “view source” option in your web browser):

The cave is pitch black.

Look out for the grue.

The padding is 15em.

The border is too.

For now, the files are identical except for the #lang line. But let’s change that.

5.5 Working with the preprocessor

Pollen can operate in several processing modes. One of these is preprocessor mode. A preprocessor is a tool for making systematic, automated changes to a file, often in contemplation of further processing (hence the pre-). You can use the Pollen preprocessor this way. Or you can just use it on its own, and leave your files in a finished state.

That’s how we’ll use it in this tutorial. We’ll build out our poem.html.pp source file so that it exits the preprocessor as a legit HTML file.

5.5.1 Setting up a preprocessor source file

The file extension of a Pollen source file tells Pollen what kind of processing to apply to it. The “.pp” file extension stands for “Pollen preprocessor.” You can use the preprocessor with any text-based file by: +
  • inserting #lang pollen as the first line,

  • adding the .pp file extension,

  • running it through Pollen.

For more about the Pollen processing modes and how to invoke them, see File.

“The preprocessor be used with any kind of text-based file?” Right. “But how?” The preprocessor reads the source file, handles any Pollen commands it finds, and lets the rest of the content pass through untouched. To the preprocessor, it’s all just text data. It doesn’t care whether that text represents HTML, CSS, JavaScript, or even TI-BASIC.

Because the preprocessor only deals in text, the Pollen commands you use in the preprocessor also have to produce text. Moreover, Pollen doesn’t enforce the semantics of the underlying file — that’s your responsibility. For instance, Pollen won’t stop you from doing nonsensical things like this:

"bad-poem.html.pp"

#lang pollen

 

The cave is pitch black.

Look out for the grue.

◊(insert-mp3-recording-of-scream)

Here, the result is not going to be valid HTML, because you can’t simply drop binary data in the middle of an HTML file. To paraphrase Mr. Babbage — garbage in, garbage out.

I’ve encouraged you to mess with the source file, but let’s return it to its original state:

"/path/to/tutorial/poem.html.pp"

#lang pollen

 

The margin is 42em.

The border is red.

The padding is 15em.

The border is too.

This file has #lang pollen as the first line, and .pp as the file extension, so it meets the minimum requirements for the preprocessor.

5.5.2 Creating valid HTML output

Let’s update our source so it produces valid HTML. Edit the source as follows:

"/path/to/tutorial/poem.html.pp"

#lang pollen

<!DOCTYPE html>

<html>

<body>

<pre>

The margin is 42em.

The border is red.

The padding is 15em.

The border is too.

</pre>

</body>

</html>

Return to the project server and view http://localhost:8080/poem.html. Earlier, the output looked like this:

The margin is 42em. The border is red. The padding is 15em. The border is too.

But now, because of the <pre> tag, the poem will appear in a monospaced font, and the line breaks will be preserved:

The margin is 42em. +
The border is red. +
The padding is 15em. +
The border is too.

As before, because the source has changed, Pollen refreshes the output file. From the dashboard, you can use the in and out links to inspect the source and output.

This is now a valid HTML page.

5.5.3 Adding commands

I mentioned that the preprocessor reads the file and handles any Pollen commands it finds. But our source file doesn’t have any commands yet. Let’s add some.

Pollen commands can be embedded in your source file using one of two modes: Racket mode or text mode. We’ll try text mode in a later tutorial. For now, we’ll use Racket mode.

To make a Racket-mode Pollen command, just take any Racket expression and put the lozenge character () in front of it. For instance, these are valid Racket expressions:

(define inner 2)

(define edge (* inner 4))

(define color "blue")

And these are the equivalent commands in Pollen:

◊(define inner 2)

◊(define edge (* inner 4))

◊(define color "blue")

5.5.4 Racket basics (if you’re not familiar)

“But how am I supposed to know Racket?” You don’t. So we’ll start now. Here are the five basic rules of Racket:

  1. The core building block of Racket is the expression. An expression can be a value (like 2 or "blue"), a variable (like edge), or a function call (like (* inner 4)).

  2. Every expression is evaluated to produce a value.

  3. A variable evaluates to whatever value it holds (so inner would become 2). A function call evaluates to its return value (so (+ 1 1) would become 2).

  4. Function calls go between parentheses. Unlike most languages, the function name comes first, followed by its arguments (so it’s (* inner 4), not (inner * 4)). This is called prefix notation.

  5. Expressions can contain recursively nested expressions. Thus, (* inner 4) could be written (* inner (+ 2 2)) or (* inner (+ (+ 1 1) (+ 1 1))).

Newcomers to Racket often gripe about prefix notation and the parentheses. If you need to get it out of your system, go ahead. Keep in mind, however, that it’s not some peculiar affectation, but rather a necessary consequence of rule #1. As you’ll come to learn, rule #1 is where the magic happens.

That should tell you enough to infer what’s going on in the Pollen commands above:

◊(define inner 2)

◊; create a variable 'inner' that holds the value 2

◊(define edge (* inner 4))

◊; create a variable 'edge' that's four times the value of 'inner'

◊(define color "blue")

◊; create a variable 'color' that holds the value "blue"

To learn more about Racket syntax, consider a detour through the excellent Quick: An Introduction to Racket with Pictures.

5.5.5 Defining variables with commands

Let’s use commands to define variables that will hold some values for our page. First, add a <head> tag to your source file, and three commmands to define three variables:

"/path/to/tutorial/poem.html.pp"

#lang pollen

<!DOCTYPE html>

<html>

<head>

◊(define inner 2)

◊(define edge (* inner 4))

◊(define color "blue")

</head>

<body>

<pre>

The margin is 42em.

The border is red.

The padding is 15em.

The border is too.

</pre>

</body>

</html>

Then look at http://localhost:8080/poem.html again. Does it look the same? Not a trick question — it should. If you click the Out link on the dashboard, you’ll see this:

<!DOCTYPE html>

<html>

<head>

 

 

 

</head>

<body>

<pre>

The margin is 42em.

The border is red.

The padding is 15em.

The border is too.

</pre>

</body>

</html>

What’s happening here? Our ◊(define ...) commands just define variables, so they don’t evaluate to any value. Instead, we get blank lines. So far, so good.

5.5.6 Inserting values from variables

To insert the value of a variable in our file, we use the command ◊|variable-name|. Let’s do that now:

"/path/to/tutorial/poem.html.pp"

#lang pollen

<!DOCTYPE html>

<html>

<head>

◊(define inner 2)

◊(define edge (* inner 4))

◊(define color "blue")

</head>

<body>

<pre>

The margin is ◊|edge|em.

The border is ◊|color|.

The padding is ◊|inner|em.

The border is too.

</pre>

</body>

</html>

Here, we’re replacing three values in the poem with the variables containing those values — ◊|edge|, ◊|color|, and ◊|inner|. Reload the file in the project server, and you’ll see:

The margin is 8em.

The border is blue.

The padding is 2em.

The border is too.

Hey, look at that — the text of the poem changed. Now it even rhymes.

If you like, in the source file, edit the variable definitions with different values and reload the page in the project server. The page will be rendered afresh with the new values. In particular, if you update inner, you’ll also see edge change, since its value depends on inner.

5.5.7 Inserting variables within CSS

Our poem makes claims about the margin, border, and padding of the page that aren’t yet true. To fix this, we’ll rely on the same basic technique of inserting variables into our HTML file. But instead of putting them in the <body> of the page, we’ll put them in a CSS <style> tag.

Update the <head> section of the page with a new <style> tag that defines a style for pre like so, using our variables for the relevant values:

"/path/to/tutorial/poem.html.pp"

#lang pollen

<!DOCTYPE html>

<html>

<head>

◊(define inner 2)

◊(define edge (* inner 4))

◊(define color "blue")

<style type="text/css">

pre {

    margin: ◊|edge|em;

    border: ◊|inner|em solid ◊|color|;

    padding: ◊|inner|em;

}

</style>

</head>

<body>

<pre>

The margin is ◊|edge|em.

The border is ◊|color|.

The padding is ◊|inner|em.

The border is too.

</pre>

</body>

</html>

Notice that we’re using the same ◊|variable-name| pattern as before to insert the variable values.

What do we expect to see? We expect that the padding and border will be 2em wide, because inner is 2. We expect the margin to be 8em, because it’s equal to edge, which is inner multiplied by 4. And we expect the color of the border to be "blue", because that’s the value of the variable color.

And indeed, when you reload the file in the project server, you’ll see exactly that:

As before, if you edit the values of the variables in the source file and reload in the project server, you’ll see both the text and the layout change.

5.6 First tutorial complete

This was a sneaky tutorial. The HTML page we made was very simple, but in building it, we covered many important points about how Pollen works.

Feel free to go back and experiment with what you’ve learned. The next tutorial will assume that you’re comfortable with all the material here.

 
\ No newline at end of file diff --git a/doc/Installation.html b/doc/Installation.html index 231b26a..231352a 100644 --- a/doc/Installation.html +++ b/doc/Installation.html @@ -1,4 +1,4 @@ -1 Installation
6.0.1.6

1 Installation

Install Racket, which includes DrRacket.

Install Pollen from the command line: +1 Installation
6.0.1.6

1 Installation

Install Racket, which includes DrRacket.

Install Pollen from the command line:

raco pkg install pollen

After that, you can update the package from the command line:

raco pkg update pollen

 
\ No newline at end of file diff --git a/doc/License___source_code.html b/doc/License___source_code.html index c46b28a..cc62b9c 100644 --- a/doc/License___source_code.html +++ b/doc/License___source_code.html @@ -1,2 +1,2 @@ -10 License & source code
6.0.1.6

10 License & source code

This module is licensed under the LGPL.

Source repository at http://github.com/mbutterick/pollen. Suggestions & corrections welcome.

 
\ No newline at end of file +11 License & source code
6.0.1.6

11 License & source code

This module is licensed under the LGPL.

Source repository at http://github.com/mbutterick/pollen. Suggestions & corrections welcome.

 
\ No newline at end of file diff --git a/doc/Module_reference.html b/doc/Module_reference.html index e5bfa04..d054df2 100644 --- a/doc/Module_reference.html +++ b/doc/Module_reference.html @@ -1,2 +1,2 @@ -8 Module reference
6.0.1.6

8 Module reference

    8.1 Cache

    8.2 Decode

      8.2.1 Block

      8.2.2 Typography

    8.3 File

    8.4 Pagetree

      8.4.1 Navigation

      8.4.2 Utilities

    8.5 Render

    8.6 Template

    8.7 Tag

    8.8 Top

    8.9 World

 
\ No newline at end of file +9 Module reference
6.0.1.6

9 Module reference

    9.1 Cache

    9.2 Decode

      9.2.1 Block

      9.2.2 Typography

    9.3 File

    9.4 Pagetree

      9.4.1 Navigation

      9.4.2 Utilities

    9.5 Render

    9.6 Template

    9.7 Tag

    9.8 Top

    9.9 World

 
\ No newline at end of file diff --git a/doc/Pagetree.html b/doc/Pagetree.html index 82c89e6..d59fd16 100644 --- a/doc/Pagetree.html +++ b/doc/Pagetree.html @@ -1,2 +1,2 @@ -8.4 Pagetree
6.0.1.6

8.4 Pagetree

 (require pollen/pagetree) package: pollen

A pagetree is a hierarchical list of Pollen output files. A pagetree source file has the extension .ptree. A pagetree provides a convenient way of separating the structure of the pages from the page sources, and navigating around this structure.

Pagetrees are made of pagenodes. Usually these pagenodes will be names of output files in your project. (If you think it would’ve been more logical to just call them “pages,” perhaps. When I think of a web page, I think of a file on a disk. Whereas pagenodes may — and often do — refer to files that don’t yet exist.)

Books and other long documents are usually organized in a structured way — at minimum they have a sequence of pages, but more often they have sections with subsequences within. Individual Pollen source files don’t know anything about how they’re connected to other files. In theory, you could maintain this information within each source file. This would be a poor use of human energy. Let the pagetree figure it out.

procedure

(pagetree? possible-pagetree)  boolean?

  possible-pagetree : any/c
Test whether possible-pagetree is a valid pagetree. It must be a txexpr? where all elements are pagenode?, and each is unique within possible-pagetree (not counting the root node).

Examples:

> (pagetree? '(root index.html))

#t

> (pagetree? '(root duplicate.html duplicate.html))

#f

> (pagetree? '(root index.html "string.html"))

#f

> (define nested-ptree '(root 1.html 2.html (3.html 3a.html 3b.html)))
> (pagetree? nested-ptree)

#t

> (pagetree? `(root index.html ,nested-ptree (subsection.html more.html)))

#t

; Nesting a subtree twice creates duplication
> (pagetree? `(root index.html ,nested-ptree (subsection.html ,nested-ptree)))

#f

procedure

(validate-pagetree possible-pagetree)  pagetree?

  possible-pagetree : any/c
Like pagetree?, but raises a descriptive error if possible-pagetree is invalid, and otherwise returns possible-pagetree itself.

Examples:

> (validate-pagetree '(root (mama.html son.html daughter.html) uncle.html))

'(root (mama.html son.html daughter.html) uncle.html)

> (validate-pagetree `(root (,+ son.html daughter.html) uncle.html))

#f

> (validate-pagetree '(root (mama.html son.html son.html) mama.html))

validate-pagetree: items aren’t unique: (son.html mama.html)

procedure

(pagenode? possible-pagenode)  boolean?

  possible-pagenode : any/c
Test whether possible-pagenode is a valid pagenode. A pagenode can be any symbol? that is not whitespace/nbsp? Every leaf of a pagetree is a pagenode. In practice, your pagenodes will likely be names of output files.

Pagenodes are symbols (rather than strings) so that pagetrees will be valid tagged X-expressions, which is a more convenient format for validation & processing.

Examples:

; Three symbols, the third one annoying but valid
> (map pagenode? '(symbol index.html |   silly   |))

'(#t #t #t)

; A number, a string, a txexpr, and a whitespace symbol
> (map pagenode? '(9.999 "index.html" (p "Hello") |    |))

'(#f #f #f #f)

procedure

(pagenodeish? v)  boolean?

  v : any/c
Return #t if v can be converted with ->pagenode.

Example:

> (map pagenodeish? '(9.999 "index.html" |    |))

'(#t #t #f)

procedure

(->pagenode v)  pagenode?

  v : pagenodeish?
Convert v to a pagenode.

Examples:

> (map pagenodeish? '(symbol 9.999 "index.html" |  silly  |))

'(#t #t #t #t)

> (map ->pagenode '(symbol 9.999 "index.html" |  silly  |))

'(symbol |9.999| index.html |  silly  |)

8.4.1 Navigation

parameter

(current-pagetree)  pagetree?

(current-pagetree pagetree)  void?
  pagetree : pagetree?
A parameter that defines the default pagetree used by pagetree navigation functions (e.g., parent-pagenode, chidren, et al.) if another is not explicitly specified. Initialized to #f.

procedure

(parent p [pagetree])  (or/c #f pagenode?)

  p : (or/c #f pagenodeish?)
  pagetree : pagetree? = (current-pagetree)
Find the parent pagenode of p within pagetree. Return #f if there isn’t one.

Examples:

> (current-pagetree '(root (mama.html son.html daughter.html) uncle.html))
> (parent 'son.html)

'mama.html

> (parent "mama.html")

'root

> (parent (parent 'son.html))

'root

> (parent (parent (parent 'son.html)))

#f

procedure

(children p [pagetree])  (or/c #f pagenode?)

  p : (or/c #f pagenodeish?)
  pagetree : pagetree? = (current-pagetree)
Find the child pagenodes of p within pagetree. Return #f if there aren’t any.

Examples:

> (current-pagetree '(root (mama.html son.html daughter.html) uncle.html))
> (children 'mama.html)

'(son.html daughter.html)

> (children 'uncle.html)

#f

> (children 'root)

'(mama.html uncle.html)

> (map children (children 'root))

'((son.html daughter.html) #f)

procedure

(siblings p [pagetree])  (or/c #f pagenode?)

  p : (or/c #f pagenodeish?)
  pagetree : pagetree? = (current-pagetree)
Find the sibling pagenodes of p within pagetree. The list will include p itself. But the function will still return #f if pagetree is #f.

Examples:

> (current-pagetree '(root (mama.html son.html daughter.html) uncle.html))
> (siblings 'son.html)

'(son.html daughter.html)

> (siblings 'daughter.html)

'(son.html daughter.html)

> (siblings 'mama.html)

'(mama.html uncle.html)

procedure

(previous p [pagetree])  (or/c #f pagenode?)

  p : (or/c #f pagenodeish?)
  pagetree : pagetree? = (current-pagetree)

procedure

(previous* p [pagetree])  (or/c #f (listof pagenode?))

  p : (or/c #f pagenodeish?)
  pagetree : pagetree? = (current-pagetree)
Return the pagenode immediately before p. For previous*, return all the pagenodes before p, in sequence. In both cases, return #f if there aren’t any pagenodes. The root pagenode is ignored.

Examples:

> (current-pagetree '(root (mama.html son.html daughter.html) uncle.html))
> (previous 'daughter.html)

'son.html

> (previous 'son.html)

'mama.html

> (previous (previous 'daughter.html))

'mama.html

> (previous 'mama.html)

#f

> (previous* 'daughter.html)

'(mama.html son.html)

> (previous* 'uncle.html)

'(mama.html son.html daughter.html)

procedure

(next p [pagetree])  (or/c #f pagenode?)

  p : (or/c #f pagenodeish?)
  pagetree : pagetree? = (current-pagetree)

procedure

(next* p [pagetree])  (or/c #f (listof pagenode?))

  p : (or/c #f pagenodeish?)
  pagetree : pagetree? = (current-pagetree)
Return the pagenode immediately after p. For next*, return all the pagenodes after p, in sequence. In both cases, return #f if there aren’t any pagenodes. The root pagenode is ignored.

Examples:

> (current-pagetree '(root (mama.html son.html daughter.html) uncle.html))
> (next 'son.html)

'daughter.html

> (next 'daughter.html)

'uncle.html

> (next (next 'son.html))

'uncle.html

> (next 'uncle.html)

#f

> (next* 'mama.html)

'(son.html daughter.html uncle.html)

> (next* 'daughter.html)

'(uncle.html)

8.4.2 Utilities

procedure

(pagetree->list pagetree)  list?

  pagetree : pagetree?
Convert pagetree to a simple list. Equivalent to a pre-order depth-first traversal of pagetree.

procedure

(in-pagetree? pagenode [pagetree])  boolean?

  pagenode : pagenode?
  pagetree : pagetree? = (current-pagetree)
Report whether pagenode is in pagetree.

procedure

(path->pagenode p)  pagenode?

  p : pathish?
Convert path p to a pagenode — meaning, make it relative to current-project-root, run it through ->output-path, and convert it to a symbol. Does not tell you whether the resultant pagenode actually exists in the current pagetree (for that, use in-pagetree?).

 
\ No newline at end of file +9.4 Pagetree
6.0.1.6

9.4 Pagetree

 (require pollen/pagetree) package: pollen

A pagetree is a hierarchical list of Pollen output files. A pagetree source file has the extension .ptree. A pagetree provides a convenient way of separating the structure of the pages from the page sources, and navigating around this structure.

Pagetrees are made of pagenodes. Usually these pagenodes will be names of output files in your project. (If you think it would’ve been more logical to just call them “pages,” perhaps. When I think of a web page, I think of a file on a disk. Whereas pagenodes may — and often do — refer to files that don’t yet exist.)

Books and other long documents are usually organized in a structured way — at minimum they have a sequence of pages, but more often they have sections with subsequences within. Individual Pollen source files don’t know anything about how they’re connected to other files. In theory, you could maintain this information within each source file. This would be a poor use of human energy. Let the pagetree figure it out.

procedure

(pagetree? possible-pagetree)  boolean?

  possible-pagetree : any/c
Test whether possible-pagetree is a valid pagetree. It must be a txexpr? where all elements are pagenode?, and each is unique within possible-pagetree (not counting the root node).

Examples:

> (pagetree? '(root index.html))

#t

> (pagetree? '(root duplicate.html duplicate.html))

#f

> (pagetree? '(root index.html "string.html"))

#f

> (define nested-ptree '(root 1.html 2.html (3.html 3a.html 3b.html)))
> (pagetree? nested-ptree)

#t

> (pagetree? `(root index.html ,nested-ptree (subsection.html more.html)))

#t

; Nesting a subtree twice creates duplication
> (pagetree? `(root index.html ,nested-ptree (subsection.html ,nested-ptree)))

#f

procedure

(validate-pagetree possible-pagetree)  pagetree?

  possible-pagetree : any/c
Like pagetree?, but raises a descriptive error if possible-pagetree is invalid, and otherwise returns possible-pagetree itself.

Examples:

> (validate-pagetree '(root (mama.html son.html daughter.html) uncle.html))

'(root (mama.html son.html daughter.html) uncle.html)

> (validate-pagetree `(root (,+ son.html daughter.html) uncle.html))

#f

> (validate-pagetree '(root (mama.html son.html son.html) mama.html))

validate-pagetree: items aren’t unique: (son.html mama.html)

procedure

(pagenode? possible-pagenode)  boolean?

  possible-pagenode : any/c
Test whether possible-pagenode is a valid pagenode. A pagenode can be any symbol? that is not whitespace/nbsp? Every leaf of a pagetree is a pagenode. In practice, your pagenodes will likely be names of output files.

Pagenodes are symbols (rather than strings) so that pagetrees will be valid tagged X-expressions, which is a more convenient format for validation & processing.

Examples:

; Three symbols, the third one annoying but valid
> (map pagenode? '(symbol index.html |   silly   |))

'(#t #t #t)

; A number, a string, a txexpr, and a whitespace symbol
> (map pagenode? '(9.999 "index.html" (p "Hello") |    |))

'(#f #f #f #f)

procedure

(pagenodeish? v)  boolean?

  v : any/c
Return #t if v can be converted with ->pagenode.

Example:

> (map pagenodeish? '(9.999 "index.html" |    |))

'(#t #t #f)

procedure

(->pagenode v)  pagenode?

  v : pagenodeish?
Convert v to a pagenode.

Examples:

> (map pagenodeish? '(symbol 9.999 "index.html" |  silly  |))

'(#t #t #t #t)

> (map ->pagenode '(symbol 9.999 "index.html" |  silly  |))

'(symbol |9.999| index.html |  silly  |)

9.4.1 Navigation

parameter

(current-pagetree)  pagetree?

(current-pagetree pagetree)  void?
  pagetree : pagetree?
A parameter that defines the default pagetree used by pagetree navigation functions (e.g., parent-pagenode, chidren, et al.) if another is not explicitly specified. Initialized to #f.

procedure

(parent p [pagetree])  (or/c #f pagenode?)

  p : (or/c #f pagenodeish?)
  pagetree : pagetree? = (current-pagetree)
Find the parent pagenode of p within pagetree. Return #f if there isn’t one.

Examples:

> (current-pagetree '(root (mama.html son.html daughter.html) uncle.html))
> (parent 'son.html)

'mama.html

> (parent "mama.html")

'root

> (parent (parent 'son.html))

'root

> (parent (parent (parent 'son.html)))

#f

procedure

(children p [pagetree])  (or/c #f pagenode?)

  p : (or/c #f pagenodeish?)
  pagetree : pagetree? = (current-pagetree)
Find the child pagenodes of p within pagetree. Return #f if there aren’t any.

Examples:

> (current-pagetree '(root (mama.html son.html daughter.html) uncle.html))
> (children 'mama.html)

'(son.html daughter.html)

> (children 'uncle.html)

#f

> (children 'root)

'(mama.html uncle.html)

> (map children (children 'root))

'((son.html daughter.html) #f)

procedure

(siblings p [pagetree])  (or/c #f pagenode?)

  p : (or/c #f pagenodeish?)
  pagetree : pagetree? = (current-pagetree)
Find the sibling pagenodes of p within pagetree. The list will include p itself. But the function will still return #f if pagetree is #f.

Examples:

> (current-pagetree '(root (mama.html son.html daughter.html) uncle.html))
> (siblings 'son.html)

'(son.html daughter.html)

> (siblings 'daughter.html)

'(son.html daughter.html)

> (siblings 'mama.html)

'(mama.html uncle.html)

procedure

(previous p [pagetree])  (or/c #f pagenode?)

  p : (or/c #f pagenodeish?)
  pagetree : pagetree? = (current-pagetree)

procedure

(previous* p [pagetree])  (or/c #f (listof pagenode?))

  p : (or/c #f pagenodeish?)
  pagetree : pagetree? = (current-pagetree)
Return the pagenode immediately before p. For previous*, return all the pagenodes before p, in sequence. In both cases, return #f if there aren’t any pagenodes. The root pagenode is ignored.

Examples:

> (current-pagetree '(root (mama.html son.html daughter.html) uncle.html))
> (previous 'daughter.html)

'son.html

> (previous 'son.html)

'mama.html

> (previous (previous 'daughter.html))

'mama.html

> (previous 'mama.html)

#f

> (previous* 'daughter.html)

'(mama.html son.html)

> (previous* 'uncle.html)

'(mama.html son.html daughter.html)

procedure

(next p [pagetree])  (or/c #f pagenode?)

  p : (or/c #f pagenodeish?)
  pagetree : pagetree? = (current-pagetree)

procedure

(next* p [pagetree])  (or/c #f (listof pagenode?))

  p : (or/c #f pagenodeish?)
  pagetree : pagetree? = (current-pagetree)
Return the pagenode immediately after p. For next*, return all the pagenodes after p, in sequence. In both cases, return #f if there aren’t any pagenodes. The root pagenode is ignored.

Examples:

> (current-pagetree '(root (mama.html son.html daughter.html) uncle.html))
> (next 'son.html)

'daughter.html

> (next 'daughter.html)

'uncle.html

> (next (next 'son.html))

'uncle.html

> (next 'uncle.html)

#f

> (next* 'mama.html)

'(son.html daughter.html uncle.html)

> (next* 'daughter.html)

'(uncle.html)

9.4.2 Utilities

procedure

(pagetree->list pagetree)  list?

  pagetree : pagetree?
Convert pagetree to a simple list. Equivalent to a pre-order depth-first traversal of pagetree.

procedure

(in-pagetree? pagenode [pagetree])  boolean?

  pagenode : pagenode?
  pagetree : pagetree? = (current-pagetree)
Report whether pagenode is in pagetree.

procedure

(path->pagenode p)  pagenode?

  p : pathish?
Convert path p to a pagenode — meaning, make it relative to current-project-root, run it through ->output-path, and convert it to a symbol. Does not tell you whether the resultant pagenode actually exists in the current pagetree (for that, use in-pagetree?).

 
\ No newline at end of file diff --git a/doc/Render.html b/doc/Render.html index 1cb2c0c..bbd3e06 100644 --- a/doc/Render.html +++ b/doc/Render.html @@ -1,4 +1,4 @@ -8.5 Render
6.0.1.6

8.5 Render

 (require pollen/render) package: pollen

Rendering is how Pollen source files get converted into output.

procedure

(render source-path [template-path])  bytes?

  source-path : complete-path?
  template-path : (or/c #f complete-path?) = #f
Renders source-path. The rendering behavior depends on the type of source file:

A [pollen/pre] file is rendered without a template.

A [pollen/markup] or [pollen/markdown] file is rendered with a template. If no template is provided with template-path, Pollen finds one using get-template-for.

Be aware that rendering with a template uses include-template within eval. For complex pages, it can be slow the first time. Caching is used to make subsequent requests faster.

For those panicked at the use of eval, please don’t be. As the author of include-template has already advised, “If you insist on dynamicism” — and yes, I do insist — “there is always eval.

procedure

(render-to-file source-path    
  [template-path    
  output-path])  void?
  source-path : complete-path?
  template-path : (or/c #f complete-path?) = #f
  output-path : (or/c #f complete-path?) = #f
Like render, but saves the file to output-path, overwriting whatever was already there. If no output-path is provided, it’s derived from source-path using ->output-path.

procedure

(render-to-file-if-needed source-path    
  [template-path    
  output-path    
  #:force force-render?])  void?
  source-path : complete-path?
  template-path : (or/c #f complete-path?) = #f
  output-path : (or/c #f complete-path?) = #f
  force-render? : boolean? = #f
Like render-to-file, but the render only happens if one of these conditions exist: +9.5 Render
6.0.1.6

9.5 Render

 (require pollen/render) package: pollen

Rendering is how Pollen source files get converted into output.

procedure

(render source-path [template-path])  bytes?

  source-path : complete-path?
  template-path : (or/c #f complete-path?) = #f
Renders source-path. The rendering behavior depends on the type of source file:

A [pollen/pre] file is rendered without a template.

A [pollen/markup] or [pollen/markdown] file is rendered with a template. If no template is provided with template-path, Pollen finds one using get-template-for.

Be aware that rendering with a template uses include-template within eval. For complex pages, it can be slow the first time. Caching is used to make subsequent requests faster.

For those panicked at the use of eval, please don’t be. As the author of include-template has already advised, “If you insist on dynamicism” — and yes, I do insist — “there is always eval.

procedure

(render-to-file source-path    
  [template-path    
  output-path])  void?
  source-path : complete-path?
  template-path : (or/c #f complete-path?) = #f
  output-path : (or/c #f complete-path?) = #f
Like render, but saves the file to output-path, overwriting whatever was already there. If no output-path is provided, it’s derived from source-path using ->output-path.

procedure

(render-to-file-if-needed source-path    
  [template-path    
  output-path    
  #:force force-render?])  void?
  source-path : complete-path?
  template-path : (or/c #f complete-path?) = #f
  output-path : (or/c #f complete-path?) = #f
  force-render? : boolean? = #f
Like render-to-file, but the render only happens if one of these conditions exist:
  1. The force-render? flag — set with the #:force keyword — is #t.

  2. No file exists at output-path. (Thus, an easy way to force a render of a particular output-path is to delete it.)

  3. Either source-path or template-path have changed since the last trip through render.

  4. One or more of the project requires have changed.

If none of these conditions exist, output-path is deemed to be up to date, and the render is skipped.

procedure

(render-batch source-paths ...)  void?

  source-paths : (listof pathish?)
Render multiple source-paths in one go. This can be faster than (for-each render source-paths) if your source-paths rely on a common set of templates. Templates may have their own source files that need to be compiled. If you use render, the templates will be repeatedly (and needlessly) re-compiled. Whereas if you use render-batch, each template will only be compiled once.

procedure

(render-pagetree pagetree)  void?

  pagetree : pagetree?
(render-pagetree pagetree-source)  void?
  pagetree-source : pathish?
Using pagetree, or a pagetree loaded from pagetree-source, render the pages in that pagetree using render-batch.

procedure

(get-template-for source-path)  (or/c #f complete-path?)

  source-path : complete-path?
Find a template file for source-path, with the following priority: -
  1. If the metas for source-path have a key for template, then use the value of this key.

  2. If this key doesn’t exist, or if it points to a nonexistent file, look for a default template in the project directory with the name template.[output extension].pt. Meaning, if source-path is intro.html.pm, the output path would be intro.html, so the default template would be template.html.pt.

  3. If this file doesn’t exist, use the fallback template as a last resort.

This function is called when a template is needed, but a template-path argument is missing (for instance, in render or render-to-file).

 
\ No newline at end of file +
  1. If the metas for source-path have a key for template, then use the value of this key.

  2. If this key doesn’t exist, or if it points to a nonexistent file, look for a default template in the project directory with the name template.[output extension].pt. Meaning, if source-path is intro.html.pm, the output path would be intro.html, so the default template would be template.html.pt.

  3. If this file doesn’t exist, use the fallback template as a last resort.

This function is called when a template is needed, but a template-path argument is missing (for instance, in render or render-to-file).

 
\ No newline at end of file diff --git a/doc/Tag.html b/doc/Tag.html index d4270a7..58ba169 100644 --- a/doc/Tag.html +++ b/doc/Tag.html @@ -1,2 +1,2 @@ -8.7 Tag
6.0.1.6

8.7 Tag

 (require pollen/tag) package: pollen

Convenience functions for working with tags.

procedure

(make-tag-function id)  (-> txexpr?)

  id : txexpr-tag?
Make a tag function for id. As arguments, a tag function takes an optional set of X-expression attributes (txexpr-attrs?) followed by X-expression elements (txexpr-elements?). From these, the tag function creates a tagged X-expression using id as the tag.

Examples:

> (require pollen/tag)
> (define beaucoup (make-tag-function 'em))
> (beaucoup "Bonjour")

'(em "Bonjour")

> (beaucoup '((id "greeting")) "Bonjour")

'(em ((id "greeting")) "Bonjour")

Entering attributes this way can be cumbersome. So for convenience, a tag function provides an alternative: any symbol + string pairs at the front of your expression will be interpreted as attributes, if the symbols are followed by a colon. If you leave out the colon, the symbols will be interpreted as part of the content of the tag.

Examples:

> (require pollen/tag)
> (define beaucoup (make-tag-function 'em))
> (beaucoup 'id: "greeting" 'class: "large" "Bonjour")

'(em ((id "greeting") (class "large")) "Bonjour")

; Don't forget the colons
> (beaucoup 'id "greeting" 'class "large" "Bonjour")

'(em id "greeting" class "large" "Bonjour")

; Don't forget to provide a value for each attribute
> (beaucoup 'id: 'class: "large" "Bonjour")

'(em id: class: "large" "Bonjour")

Pollen also uses this function to provide the default behavior for undefined tags. See #%top.

 
\ No newline at end of file +9.7 Tag
6.0.1.6

9.7 Tag

 (require pollen/tag) package: pollen

Convenience functions for working with tags.

procedure

(make-tag-function id)  (-> txexpr?)

  id : txexpr-tag?
Make a tag function for id. As arguments, a tag function takes an optional set of X-expression attributes (txexpr-attrs?) followed by X-expression elements (txexpr-elements?). From these, the tag function creates a tagged X-expression using id as the tag.

Examples:

> (require pollen/tag)
> (define beaucoup (make-tag-function 'em))
> (beaucoup "Bonjour")

'(em "Bonjour")

> (beaucoup '((id "greeting")) "Bonjour")

'(em ((id "greeting")) "Bonjour")

Entering attributes this way can be cumbersome. So for convenience, a tag function provides an alternative: any symbol + string pairs at the front of your expression will be interpreted as attributes, if the symbols are followed by a colon. If you leave out the colon, the symbols will be interpreted as part of the content of the tag.

Examples:

> (require pollen/tag)
> (define beaucoup (make-tag-function 'em))
> (beaucoup 'id: "greeting" 'class: "large" "Bonjour")

'(em ((id "greeting") (class "large")) "Bonjour")

; Don't forget the colons
> (beaucoup 'id "greeting" 'class "large" "Bonjour")

'(em id "greeting" class "large" "Bonjour")

; Don't forget to provide a value for each attribute
> (beaucoup 'id: 'class: "large" "Bonjour")

'(em id: class: "large" "Bonjour")

Pollen also uses this function to provide the default behavior for undefined tags. See #%top.

 
\ No newline at end of file diff --git a/doc/Template.html b/doc/Template.html index 01f3748..8d18106 100644 --- a/doc/Template.html +++ b/doc/Template.html @@ -1,2 +1,2 @@ -8.6 Template
6.0.1.6

8.6 Template

 (require pollen/template) package: pollen

Convenience functions for templates. These are automatically imported into the eval environment when rendering with a template (see render).

This module also provides everything from sugar/coerce/value.

procedure

(->html xexpr)  string?

  xexpr : xexpr?
Convert xexpr to an HTML string. Similar to xexpr->string, but consistent with the HTML spec, text that appears within script or style blocks will not be escaped.

Examples:

> (define tx '(root (script "3 > 2") "Why is 3 > 2?"))
> (xexpr->string tx)

"<root><script>3 &gt; 2</script>Why is 3 &gt; 2?</root>"

> (->html tx)

"<root><script>3 > 2</script>Why is 3 &gt; 2?</root>"

Be careful not to pass existing HTML strings into this function, because the angle brackets will be escaped. Fine if that’s what you want, but you probably don’t.

Examples:

> (define tx '(p "You did" (em "what?")))
> (->html tx)

"<p>You did<em>what?</em></p>"

> (->html (->html tx))

"&lt;p&gt;You did&lt;em&gt;what?&lt;/em&gt;&lt;/p&gt;"

procedure

(select key value-source)  (or/c #f txexpr-element?)

  key : symbolish?
  value-source : (or/c hash? txexpr? pagenode? pathish?)

procedure

(select* key value-source)  (or/c #f (listof txexpr-element?))

  key : symbolish?
  value-source : (or/c hash? txexpr? pagenode? pathish?)
Find matches for key in value-source, first by looking in its metas (using select-from-metas) and then by looking in its doc (using select-from-doc). With select, you get the first result; with select*, you get them all. In both cases, you get #f if there are no matches.

procedure

(select-from-metas key meta-source)  (or/c #f txexpr-element?)

  key : symbolish?
  meta-source : (or/c hash? pagenodeish? pathish?)
Look up the value of key in meta-source. The meta-source argument can be either a set of metas (i.e., a hash) or a pagenode?, from which metas are pulled. If no value exists for key, you get #f.

Examples:

> (module ice-cream pollen/markup
  '(div (question "Flavor?")
    (answer "Chocolate chip") (answer "Maple walnut"))
    '(meta ((template "sub.xml.pt")))
    '(meta ((target "print"))))
; Import doc & metas from 'ice-cream submodule
> (require 'ice-cream)
> (select-from-metas 'template  metas)

"sub.xml.pt"

> ('target . select-from-metas . metas)

"print"

> (select-from-metas 'nonexistent-key metas)

#f

procedure

(select-from-doc key doc-source)  (or/c #f txexpr-element?)

  key : symbolish?
  doc-source : (or/c txexpr? pagenodeish? pathish?)
Look up the value of key in doc-source. The doc-source argument can be either be a doc (i.e., a txexpr) or a pagenode?, from which doc is pulled. If no value exists for key, you get #f.

Examples:

> (module gelato pollen/markup
  '(div (question "Flavor?")
    (answer "Nocciola") (answer "Pistachio"))
    '(meta ((template "sub.xml.pt")))
    '(meta ((target "print"))))
; Import doc & metas from 'gelato submodule
> (require 'gelato)
> (select-from-doc 'question  doc)

'("Flavor?")

> ('answer . select-from-doc . doc)

'("Nocciola" "Pistachio")

> (select-from-doc 'nonexistent-key doc)

#f

 
\ No newline at end of file +9.6 Template
6.0.1.6

9.6 Template

 (require pollen/template) package: pollen

Convenience functions for templates. These are automatically imported into the eval environment when rendering with a template (see render).

This module also provides everything from sugar/coerce/value.

procedure

(->html xexpr)  string?

  xexpr : xexpr?
Convert xexpr to an HTML string. Similar to xexpr->string, but consistent with the HTML spec, text that appears within script or style blocks will not be escaped.

Examples:

> (define tx '(root (script "3 > 2") "Why is 3 > 2?"))
> (xexpr->string tx)

"<root><script>3 &gt; 2</script>Why is 3 &gt; 2?</root>"

> (->html tx)

"<root><script>3 > 2</script>Why is 3 &gt; 2?</root>"

Be careful not to pass existing HTML strings into this function, because the angle brackets will be escaped. Fine if that’s what you want, but you probably don’t.

Examples:

> (define tx '(p "You did" (em "what?")))
> (->html tx)

"<p>You did<em>what?</em></p>"

> (->html (->html tx))

"&lt;p&gt;You did&lt;em&gt;what?&lt;/em&gt;&lt;/p&gt;"

procedure

(select key value-source)  (or/c #f txexpr-element?)

  key : symbolish?
  value-source : (or/c hash? txexpr? pagenode? pathish?)

procedure

(select* key value-source)  (or/c #f (listof txexpr-element?))

  key : symbolish?
  value-source : (or/c hash? txexpr? pagenode? pathish?)
Find matches for key in value-source, first by looking in its metas (using select-from-metas) and then by looking in its doc (using select-from-doc). With select, you get the first result; with select*, you get them all. In both cases, you get #f if there are no matches.

procedure

(select-from-metas key meta-source)  (or/c #f txexpr-element?)

  key : symbolish?
  meta-source : (or/c hash? pagenodeish? pathish?)
Look up the value of key in meta-source. The meta-source argument can be either a set of metas (i.e., a hash) or a pagenode?, from which metas are pulled. If no value exists for key, you get #f.

Examples:

> (module ice-cream pollen/markup
  '(div (question "Flavor?")
    (answer "Chocolate chip") (answer "Maple walnut"))
    '(meta ((template "sub.xml.pt")))
    '(meta ((target "print"))))
; Import doc & metas from 'ice-cream submodule
> (require 'ice-cream)
> (select-from-metas 'template  metas)

"sub.xml.pt"

> ('target . select-from-metas . metas)

"print"

> (select-from-metas 'nonexistent-key metas)

#f

procedure

(select-from-doc key doc-source)  (or/c #f txexpr-element?)

  key : symbolish?
  doc-source : (or/c txexpr? pagenodeish? pathish?)
Look up the value of key in doc-source. The doc-source argument can be either be a doc (i.e., a txexpr) or a pagenode?, from which doc is pulled. If no value exists for key, you get #f.

Examples:

> (module gelato pollen/markup
  '(div (question "Flavor?")
    (answer "Nocciola") (answer "Pistachio"))
    '(meta ((template "sub.xml.pt")))
    '(meta ((target "print"))))
; Import doc & metas from 'gelato submodule
> (require 'gelato)
> (select-from-doc 'question  doc)

'("Flavor?")

> ('answer . select-from-doc . doc)

'("Nocciola" "Pistachio")

> (select-from-doc 'nonexistent-key doc)

#f

 
\ No newline at end of file diff --git a/doc/Top.html b/doc/Top.html index 3871278..dc3536d 100644 --- a/doc/Top.html +++ b/doc/Top.html @@ -1,2 +1,2 @@ -8.8 Top
6.0.1.6

8.8 Top

 (require pollen/top) package: pollen

You’ll probably never invoke this module directly. But it’s implicitly imported into every Pollen markup file. And if you don’t know what it does, you might end up surprised by some of the behavior you get.

syntax

(#%top . id)

In standard Racket, #%top is the function of last resort, called when id is not bound to any value. As such, it typically reports a syntax error.

Examples:

; Let's call em without defining it
> (em "Bonjour")

em: undefined;

 cannot reference undefined identifier

; (em "Bonjour") is being converted to ((#%top . em) "Bonjour")
; So calling ((#%top . em) "Bonjour") will give the same result
> ((#%top . em) "Bonjour")

em: undefined;

 cannot reference undefined identifier

In the Pollen markup environment, however, this behavior is annoying. Because when you’re writing X-expressions, you don’t necessarily want to define all your tags ahead of time.

So Pollen redefines #%top. For convenience, Pollen’s version of #%top assumes that an undefined tag should just refer to an X-expression beginning with that tag (and uses make-tag-function to provide this behavior):

Examples:

; Again, let's call em without defining it, but using pollen/top
> (require pollen/top)
> (em "Bonjour")

'(em "Bonjour")

; (em "Bonjour") is still being converted to ((#%top . em) "Bonjour")
; But now, ((#%top . em) "Bonjour") gives a different result
> ((#%top . em) "Bonjour")

'(em "Bonjour")

The good news is that this behavior means you use any tag you want in your markup without defining it in advance. You can still attach a function to the tag later, which will automatically supersede #%top.

Examples:

> (define (em x) `(span ((style "font-size:100px")) ,x))
> (em "Bonjour")

'(span ((style "font-size:100px")) "Bonjour")

The bad news is that you’ll never get an “undefined identifier” error. These undefined identifiers will happily sail through and be converted to tags.

Examples:

> (require pollen/top)
> (define (em . xs) `(span ((style "font-size:100px")) ,@xs))
; There's a typo in my tag
> (erm "Bonjour")

'(erm "Bonjour")

This isn’t a bug. It’s just a natural consequence of how Pollen’s #%top works. It can, however, make debugging difficult sometimes. Let’s suppose my markup depends on very-important-function, which I don’t import correctly.

Examples:

> (require pollen/top)
> (module vif racket/base
      (define (very-important-function . xs) `(secrets-of-universe ,@xs)))
; Forgot to (require 'vif)
> (very-important-function "Bonjour")

'(very-important-function "Bonjour")

So the undefined-function bug goes unreported. Again, that’s not a bug in Pollen — there’s just no way for it to tell the difference between an identifier that’s deliberately undefined and one that’s inadvertently undefined. If you want to guarantee that you’re invoking a defined identifier, use def/c.

syntax

(def/c id)

Invoke id if it’s a defined identifier, otherwise raise an error. This form reverses the behavior of #%top (in other words, it restores default Racket behavior).

Recall this example from before. In standard Racket, you get an undefined-identifier error.

Examples:

> (module vif racket/base
      (define (very-important-function . xs) `(secrets-of-universe ,@xs)))
; Forgot to (require 'vif)
> (very-important-function "Bonjour")

very-important-function: undefined;

 cannot reference undefined identifier

But with pollen/top, the issue is not treated as an error.

Examples:

> (require pollen/top)
> (module vif racket/base
      (define (very-important-function . xs) `(secrets-of-universe ,@xs)))
; Forgot to (require 'vif)
> (very-important-function "Bonjour")

'(very-important-function "Bonjour")

By adding def/c, we restore the usual behavior, guaranteeing that we get the defined version of very-important-function or nothing.

Examples:

> (require pollen/top)
> (module vif racket/base
      (define (very-important-function . xs) `(secrets-of-universe ,@xs)))
; Forgot to (require 'vif)
> ((def/c very-important-function) "Bonjour")

very-important-function: undefined;

 cannot reference undefined identifier

 
\ No newline at end of file +9.8 Top
6.0.1.6

9.8 Top

 (require pollen/top) package: pollen

You’ll probably never invoke this module directly. But it’s implicitly imported into every Pollen markup file. And if you don’t know what it does, you might end up surprised by some of the behavior you get.

syntax

(#%top . id)

In standard Racket, #%top is the function of last resort, called when id is not bound to any value. As such, it typically reports a syntax error.

Examples:

; Let's call em without defining it
> (em "Bonjour")

em: undefined;

 cannot reference undefined identifier

; (em "Bonjour") is being converted to ((#%top . em) "Bonjour")
; So calling ((#%top . em) "Bonjour") will give the same result
> ((#%top . em) "Bonjour")

em: undefined;

 cannot reference undefined identifier

In the Pollen markup environment, however, this behavior is annoying. Because when you’re writing X-expressions, you don’t necessarily want to define all your tags ahead of time.

So Pollen redefines #%top. For convenience, Pollen’s version of #%top assumes that an undefined tag should just refer to an X-expression beginning with that tag (and uses make-tag-function to provide this behavior):

Examples:

; Again, let's call em without defining it, but using pollen/top
> (require pollen/top)
> (em "Bonjour")

'(em "Bonjour")

; (em "Bonjour") is still being converted to ((#%top . em) "Bonjour")
; But now, ((#%top . em) "Bonjour") gives a different result
> ((#%top . em) "Bonjour")

'(em "Bonjour")

The good news is that this behavior means you use any tag you want in your markup without defining it in advance. You can still attach a function to the tag later, which will automatically supersede #%top.

Examples:

> (define (em x) `(span ((style "font-size:100px")) ,x))
> (em "Bonjour")

'(span ((style "font-size:100px")) "Bonjour")

The bad news is that you’ll never get an “undefined identifier” error. These undefined identifiers will happily sail through and be converted to tags.

Examples:

> (require pollen/top)
> (define (em . xs) `(span ((style "font-size:100px")) ,@xs))
; There's a typo in my tag
> (erm "Bonjour")

'(erm "Bonjour")

This isn’t a bug. It’s just a natural consequence of how Pollen’s #%top works. It can, however, make debugging difficult sometimes. Let’s suppose my markup depends on very-important-function, which I don’t import correctly.

Examples:

> (require pollen/top)
> (module vif racket/base
      (define (very-important-function . xs) `(secrets-of-universe ,@xs)))
; Forgot to (require 'vif)
> (very-important-function "Bonjour")

'(very-important-function "Bonjour")

So the undefined-function bug goes unreported. Again, that’s not a bug in Pollen — there’s just no way for it to tell the difference between an identifier that’s deliberately undefined and one that’s inadvertently undefined. If you want to guarantee that you’re invoking a defined identifier, use def/c.

syntax

(def/c id)

Invoke id if it’s a defined identifier, otherwise raise an error. This form reverses the behavior of #%top (in other words, it restores default Racket behavior).

Recall this example from before. In standard Racket, you get an undefined-identifier error.

Examples:

> (module vif racket/base
      (define (very-important-function . xs) `(secrets-of-universe ,@xs)))
; Forgot to (require 'vif)
> (very-important-function "Bonjour")

very-important-function: undefined;

 cannot reference undefined identifier

But with pollen/top, the issue is not treated as an error.

Examples:

> (require pollen/top)
> (module vif racket/base
      (define (very-important-function . xs) `(secrets-of-universe ,@xs)))
; Forgot to (require 'vif)
> (very-important-function "Bonjour")

'(very-important-function "Bonjour")

By adding def/c, we restore the usual behavior, guaranteeing that we get the defined version of very-important-function or nothing.

Examples:

> (require pollen/top)
> (module vif racket/base
      (define (very-important-function . xs) `(secrets-of-universe ,@xs)))
; Forgot to (require 'vif)
> ((def/c very-important-function) "Bonjour")

very-important-function: undefined;

 cannot reference undefined identifier

 
\ No newline at end of file diff --git a/doc/World.html b/doc/World.html index 846fedf..a2985d7 100644 --- a/doc/World.html +++ b/doc/World.html @@ -1,5 +1,5 @@ -8.9 World
6.0.1.6

8.9 World

 (require pollen/world) package: pollen

A set of global values and parameters that are used throughout the Pollen system. If you don’t like the defaults I’ve picked, change them.

All identifiers are exported with the prefix world:, and are so documented below.

A parameter that sets the HTTP port for the project server. Initialized to world:default-port, which defaults to 8080.

The two exports from a compiled Pollen source file. Initialized to 'doc and 'metas, respectively.

File implicitly required into every Pollen source file from its directory. Initialized to "project-require.rkt".

A parameter that determines whether the world:project-require file is checked for changes on every pass through render. (Can be faster to turn this off if you don’t need it.) Initialized to #t.

Name of directory where server support files live. Initialized to "server-extras".

A parameter that reports the path to the directory of support files for the project server. Initialized to #f, but set to a proper value when the server runs.

File extensions for Pollen source files, initialized to the following values:

world:preproc-source-ext = pp +9.9 World

6.0.1.6

9.9 World

 (require pollen/world) package: pollen

A set of global values and parameters that are used throughout the Pollen system. If you don’t like the defaults I’ve picked, change them.

All identifiers are exported with the prefix world:, and are so documented below.

A parameter that sets the HTTP port for the project server. Initialized to world:default-port, which defaults to 8080.

The two exports from a compiled Pollen source file. Initialized to 'doc and 'metas, respectively.

File implicitly required into every Pollen source file from its directory. Initialized to "project-require.rkt".

A parameter that determines whether the world:project-require file is checked for changes on every pass through render. (Can be faster to turn this off if you don’t need it.) Initialized to #t.

Name of directory where server support files live. Initialized to "server-extras".

A parameter that reports the path to the directory of support files for the project server. Initialized to #f, but set to a proper value when the server runs.

File extensions for Pollen source files, initialized to the following values:

world:preproc-source-ext = pp
world:markup-source-ext = pm
world:markdown-source-ext = pmd
world:null-source-ext = p @@ -9,4 +9,4 @@
world:mode-preproc = pre
world:mode-markup = markup
world:mode-markdown = markdown -
world:mode-pagetree = ptree

Pagetree that Pollen dashboard loads by default in each directory. Initialized to "index.ptree".

Name of the root node in a decoded pagetree. It’s ignored by the code, so its only role is to clue you in that you’re looking at something that came out of the pagetree decoder. Initialized to 'pagetree-root.

The magic character that indicates a Pollen command, function, or variable. Initialized to #\◊.

Prefix of the default template. Initialized to "template".

Name of the fallback template (i.e., the template used to render a Pollen markup file when no other template can be found). Initialized to "fallback.html.pt".

Meta key used to store a template name for that particular source file. Initialized to 'template.

Default separators used in decoding. The first two are initialized to "\n"; the third to "\n\n".

CSS file used for the dashboard. Initialized to "poldash.css".

Paths not shown in the Pollen dashboard.

 
\ No newline at end of file +
world:mode-pagetree = ptree

Pagetree that Pollen dashboard loads by default in each directory. Initialized to "index.ptree".

Name of the root node in a decoded pagetree. It’s ignored by the code, so its only role is to clue you in that you’re looking at something that came out of the pagetree decoder. Initialized to 'pagetree-root.

The magic character that indicates a Pollen command, function, or variable. Initialized to #\◊.

Prefix of the default template. Initialized to "template".

Name of the fallback template (i.e., the template used to render a Pollen markup file when no other template can be found). Initialized to "fallback.html.pt".

Meta key used to store a template name for that particular source file. Initialized to 'template.

Default separators used in decoding. The first two are initialized to "\n"; the third to "\n\n".

CSS file used for the dashboard. Initialized to "poldash.css".

Paths not shown in the Pollen dashboard.

 
\ No newline at end of file diff --git a/doc/big-picture.html b/doc/big-picture.html new file mode 100644 index 0000000..ec37a32 --- /dev/null +++ b/doc/big-picture.html @@ -0,0 +1,3 @@ + +4 The big picture
6.0.1.6

4 The big picture

A summary of the key components & concepts of the Pollen publishing system and how they fit together. If you’ve completed the Quick tour, this will lend some context to what you saw. The next tutorials will make more sense if you read this first.

4.1 The book is a program

This is the core design principle of Pollen. Consistent with this principle, Pollen adopts the habits of software development in its functionality, workflow, and project management.

  • You are a programmer. Don’t panic. But let’s just admit it — if your book is a program, then you are, in part, programming it. You don’t have to know any programming to start using Pollen. But you’ll have to be willing to learn a few programming ideas. (Those who have programmed other template-based HTML generators may have to forget a few things.)

  • A Pollen project consists of source files + static files. A source file is a file that can be compiled to produce certain output. A static file is usable as it stands (e.g., an SVG file or webfont). Generally, the textual content of your book will live in source files, and other elements will be static files.

  • Source control is a good idea. Because Pollen projects are software projects, they can be easily managed with systems for source control and collaboration, like GitHub. If you’re a writer at heart, don’t fear these systems — the learning curve is repaid by revision & edit tracking that’s much easier than it is with Word or PDF files.

4.2 One language, multiple dialects

  • Everything is Racket. The Pollen system is built entirely in the Racket programming language. Some of your source files will be in Racket. Others will be in one of the Pollen language dialects. But under the hood, everything becomes Racket code. So if you plan to do any serious work in Pollen, you’ll want to learn some basics about Racket too (for instance Quick: An Introduction to Racket with Pictures).

  • The Pollen language is based on Scribble. Scribble is a variant of the Racket language that flips the usual programming syntax: instead of code with embedded textual content, a Scribble source file is text with embedded code (an idea borrowed from TeX). The Pollen language is adapted from Scribble. So most things that are true about Scribble are also true about Pollen (see Scribble: The Racket Documentation Tool).

  • The Pollen language is divided into dialects. The Pollen dialects share a common syntax and structure. But they’re different in details that makes them better adapted to certain types of source files (for instance, one dialect of Pollen understands Markdown; the others don’t). Use whichever suits the task at hand.

4.3 Development environment

The Pollen development environment has three main pieces: the DrRacket code editor, the project server, and the command-line tool.

  • Edit source files with DrRacket. DrRacket is Racket’s GUI code editor. Sure, you can also use a generic text editor. But DrRacket lets you immediately run your source and see if it works.

  • Preview & test web pages with the Pollen project server. Pollen has a built-in development web server called the project server. After you start the project server, you can preview your web pages within any web browser, allowing you to test them with maximum accuracy.

  • Write the docs. The project server can recognize and render Scribble files, so you can use it as a previewing tool while you’re writing your documentation.

  • Render & deploy from the command line. Your Pollen project ultimately gets rendered to a set of static files (usually HTML and related assets). This can be controlled from the command line, so you can integrate it into other scripts.

4.4 A special data structure for HTML

Unlike other programming languages, Pollen (and Racket) internally represent HTML with something called an X-expression. An X-expression is simply a list that represents what in HTML is called an element, meaning a thing with an opening tag, a closing tag, and content in between. Like HTML elements, X-expressions can be nested. Unlike HTML elements, X-expressions have no closing tag, they use parentheses to denote the start and end, and text elements are put inside quotes.

For example, consider this HTML element:

<body><h1>Hello world</h1><p>Nice to <i>see</i> you.</p></body>

As a Racket X-expression, this would be written:

(body (h1 "Hello world") (p "Nice to " (i "see") " you."))

More will be said about X-expressions. But a couple advantages should be evident already. First, without the redundant angle brackets, the X-expression is more readable than the equivalent HTML. Second, an X-expression is preferable to representing HTML as a simple string, because it preserves the internal structure of the element.

4.5 Pollen command syntax

As mentioned above, a Pollen source file is not code with text embedded in it, but rather text with code embedded. (See ◊ command overview for more.)

  • If you can write text, you can program in Pollen. Really. As you already found out in the Quick tour, this is a valid Pollen program: +
    #lang pollen
    Hello world: how are you on this fine summer day?

  • Commands start with ◊. A simple rule: if a piece of text starts with , it’s treated as a command; otherwise it’s treated as ordinary text.

  • Write commands in text mode or Racket mode. Commands can use two equivalent notation systems: either Pollen’s text-mode command syntax, or standard Racket syntax.

  • Everything in Racket is in Pollen too. This isn’t some dimwit “template language.” Racket is a fully provisioned programming language, and every Racket function is available in Pollen.

4.6 The preprocessor

The preprocessor is the simplest processing mode in Pollen.

  • Text output. The preprocessor scans the source for any Pollen commands, resolves them, and outputs the whole file as text.

  • Work with any text file. I hope this blows your mind a teeny bit. You can use the preprocessor with HTML, CSS, Markdown, JavaScript, XML, SVG, or any other text-based file (including source files of other programming languages).

  • Start quickly. Because it works with any text file, the preprocessor is an easy way to try out Pollen, because you can mix it into your workflow on an existing project, or even just one file.

4.7 Templated source files

If you want to apply a particular page format to multiple sources of content — as you would in a book — you can use Pollen templates.

  • Templates can be any format. Usually Pollen templates will be HTML. But they don’t have to be.

  • Markdown support. Pollen has a built-in Markdown parser, so you can import Markdown sources into a Pollen publication.

  • Custom markup. Pollen’s markup mode allows you the freedom to define your own markup tags and attach behavior to them.

  • Mix source types. Every text source is converted to an X-expression before going into a template. So it’s fine to have multiple kinds of text source in one project.

4.8 Pagetrees

Similar to a table of contents, a pagetree is a special Pollen source file that gets turned into a hierarchical list of pages.

  • Navigation. Pagetrees are used to provide navigation links within HTML templates (like previous, next, up, top).

  • Organization. Multiple pagetrees can be used to divide your project into subsets of pages that should be treated separately.

 
\ No newline at end of file diff --git a/doc/dashboard.png b/doc/dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..6380e23915193addec77474919397d45613c4836 GIT binary patch literal 41812 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 literal 0 HcmV?d00001 diff --git a/doc/doc-index.html b/doc/doc-index.html index 72eaf36..d25eb8a 100644 --- a/doc/doc-index.html +++ b/doc/doc-index.html @@ -1,2 +1,2 @@ -Index
 
\ No newline at end of file +Index

Index

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

 

“Now you have two problems”
#%top
->html
->markup-source-path
->null-source-path
->output-path
->pagenode
->preproc-source-path
->scribble-source-path
->template-source-path
A special data structure for HTML
Acknowledgments
Adding commands
Any command is valid
Backstory
Block
block-txexpr?
Cache
cache-ref
cached-require
children
Command syntax using ◊
Creating a source file
Creating valid HTML output
current-cache
current-pagetree
Custom exports
Decode
decode
def/c
Defining variables with commands
detect-linebreaks
detect-paragraphs
Development environment
Enter Racket
File
File formats
First tutorial
First tutorial complete
Further reading
get-template-for
has-markup-source?
has-null-source?
has-preproc-source?
has-scribble-source?
has-template-source?
has/is-markup-source?
has/is-null-source?
has/is-preproc-source?
has/is-scribble-source?
has/is-template-source?
in-pagetree?
Inserting a comment
Inserting the value of a variable
Inserting values from variables
Inserting variables within CSS
Installation
Intermission
Invoking other functions
Invoking tag functions
License & source code
make-cache
make-tag-function
Making sure raco pollen works
Markdown (.pmd extension)
Markdown mode
Markup (.pm extension)
Markup mode
markup-source?
Module reference
Naming, saving, and rendering a source file
Navigation
next
next*
Null (.p extension)
null-source?
One language, multiple dialects
pagenode?
pagenodeish?
Pagetree
Pagetree (.ptree extension)
pagetree->list
pagetree-source?
pagetree?
Pagetrees
parent
path->pagenode
pollen
Pollen as a preprocessor
Pollen command syntax
pollen/cache
pollen/decode
pollen/file
pollen/markdown
pollen/markup
pollen/pagetree
pollen/pre
pollen/ptree
pollen/render
pollen/tag
pollen/template
pollen/top
pollen/world
Pollen: the book is a program
preproc-source?
Preprocessor (.pp extension)
Prerequisites
previous
previous*
project-block-tags
PS for Scribble users
Putting in the text of the poem
Quick tour
Racket basics (if you’re not familiar)
raco pollen
raco pollen clone
raco pollen help
raco pollen render
raco pollen start
register-block-tag
Render
render
render-batch
render-pagetree
render-to-file
render-to-file-if-needed
reset-cache
Rethinking the solution for digital books
Running a source file
Saving & naming your source file
Scribble (.scrbl extension)
scribble-source?
select
select*
select-from-doc
select-from-metas
Setting the #lang line
Setting up a preprocessor source file
siblings
smart-dashes
smart-quotes
Source files in the dashboard
Source formats
Standard exports
Starting a new file in DrRacket
Starting the project server with raco pollen
Tag
Template
template-source?
Templated source files
Templates
The better idea: a programming model
The big picture
The book is a program
The command name
The end of the beginning
The golden rule
The lozenge glyph (◊)
The preprocessor
The project server
The project-require.rkt file
The Racket arguments
The relationship of Racket & Pollen
The text argument
The two command modes: text mode & Racket mode
Top
Typography
Using raco pollen
Using the dashboard
Using the project server
Utilities
Utility formats
validate-pagetree
Web development and its discontents
What is Pollen?
whitespace/nbsp?
whitespace?
Working with the preprocessor
World
world:check-project-requires-in-render?
world:command-marker
world:current-server-extras-path
world:current-server-port
world:dashboard-css
world:decodable-extensions
world:default-pagetree
world:default-port
world:default-template-prefix
world:fallback-template
world:linebreak-separator
world:main-pollen-export
world:markdown-source-ext
world:markup-source-ext
world:meta-pollen-export
world:mode-auto
world:mode-markdown
world:mode-markup
world:mode-pagetree
world:mode-preproc
world:newline
world:null-source-ext
world:pagetree-root-node
world:pagetree-source-ext
world:paragraph-separator
world:paths-excluded-from-dashboard
world:preproc-source-ext
world:project-require
world:scribble-source-ext
world:server-extras-dir
world:template-meta-key
world:template-source-ext
◊ command overview

 
\ No newline at end of file diff --git a/doc/file-types.html b/doc/file-types.html new file mode 100644 index 0000000..1236041 --- /dev/null +++ b/doc/file-types.html @@ -0,0 +1,2 @@ + +9.3 File
6.0.1.6

9.3 File

 (require pollen/file) package: pollen

A utility module that provides functions for working with Pollen source and output files. The tests rely on file extensions specified in pollen/world.

Pollen handles six kinds of source files:

Preprocessor, with file extension .pp.

Markup, with file extension .pm.

Template, with file extension .pt.

Null, with file extension .p.

Scribble, with file extension .scrbl.

For each kind of Pollen source file, the corresponding output file is generated by removing the extension from the name of the source file. So the preprocessor source file default.css.pp would become default.css. Scribble files work differently — the corresponding output file is the source file but with an html extension rather than scrbl. So pollen.scrbl would become pollen.html.

procedure

(preproc-source? v)  boolean?

  v : any/c

procedure

(markup-source? v)  boolean?

  v : any/c

procedure

(template-source? v)  boolean?

  v : any/c

procedure

(null-source? v)  boolean?

  v : any/c

procedure

(scribble-source? v)  boolean?

  v : any/c

procedure

(pagetree-source? v)  boolean?

  v : any/c
Test whether v is a path representing a source file of the specified type, based on file extension.

Examples:

> (preproc-source? "main.css.pp")

#t

> (markup-source? "default.html.pm")

#t

> (template-source? "main.html.pt")

#t

> (null-source? "index.html.p")

#t

> (scribble-source? "file.scrbl")

#t

> (pagetree-source? "index.ptree")

#t

procedure

(has-preproc-source? v)  boolean?

  v : any/c

procedure

(has-markup-source? v)  boolean?

  v : any/c

procedure

(has-template-source? v)  boolean?

  v : any/c

procedure

(has-null-source? v)  boolean?

  v : any/c

procedure

(has-scribble-source? v)  boolean?

  v : any/c
Test whether v is the output path for an existing source file of the specified type.

procedure

(has/is-preproc-source? v)  boolean?

  v : any/c

procedure

(has/is-markup-source? v)  boolean?

  v : any/c

procedure

(has/is-template-source? v)  boolean?

  v : any/c

procedure

(has/is-null-source? v)  boolean?

  v : any/c

procedure

(has/is-scribble-source? v)  boolean?

  v : any/c
Test whether v is a path representing a source file of the specified type, or is the output path for an existing source file of the specified type. In other words, has/is-preproc-source? is equivalent to (or (preproc-source? v) (has-preproc-source? v)).

procedure

(->preproc-source-path p)  path?

  p : pathish?

procedure

(->markup-source-path p)  path?

  p : pathish?

procedure

(->template-source-path p)  path?

  p : pathish?

procedure

(->null-source-path p)  path?

  p : pathish?

procedure

(->scribble-source-path p)  path?

  p : pathish?
Convert an output path p into the source path of the specified type that would produce this output path. This function simply generates a path for a file — it does not ask whether the file exists.

Examples:

> (define name "default.html")
> (->preproc-source-path name)

#<path:default.html.pp>

> (->markup-source-path name)

#<path:default.html.pm>

> (->template-source-path name)

#<path:default.html.pt>

> (->scribble-source-path name)

#<path:default.scrbl>

> (->null-source-path name)

#<path:default.html.p>

procedure

(->output-path p)  path?

  p : pathish?
Convert a source path p into its corresponding output path. This function simply generates a path for a file — it does not ask whether the file exists.

Examples:

> (->output-path "main.css.pp")

#<path:main.css>

> (->output-path "default.html.pm")

#<path:default.html>

> (->output-path "index.html.p")

#<path:index.html>

> (->output-path "file.scrbl")

#<path:file.html>

 
\ No newline at end of file diff --git a/doc/index.html b/doc/index.html index 9b63327..1081500 100644 --- a/doc/index.html +++ b/doc/index.html @@ -1,3 +1,3 @@ -Pollen: the book is a program
6.0.1.6

Pollen: the book is a program

Matthew Butterick <mb@mbtype.com>

 #lang pollen package: pollen

Pollen is a publishing system that helps authors create beautiful and functional web-based books. Pollen includes tools for writing, designing, programming, testing, and publishing.

I used Pollen to create my book Butterick’s Practical Typography. Sure, go take a look. Is it better than the last digital book you encountered? Yes it is. Would you like your book to look like that? If so, keep reading.

At the core of Pollen is an argument: -
  • First, that digital books should be the best books we’ve ever had. So far, they’re not even close.

  • Second, that because digital books are software, an author shouldn’t think of a book as merely data. The book is a program.

  • Third, that the way we make digital books better than their predecessors is by exploiting this programmability.

That’s what Pollen is for.

Not that you need to be a programmer to use Pollen. On the contrary, the Pollen language is markup-based, so you can write & edit text naturally. But when you want to automate repetitive tasks, add cross-references, or pull in data from other sources, you can access a full programming language from within the text.

That language is Racket. I chose Racket because while the idea for Pollen had been with me for several years, it simply wasn’t possible to build it with other languages. So if it’s unfamiliar to you, don’t panic. It was unfamiliar to me. Once you see what you can do with Pollen & Racket, you may be persuaded. I was.

Or, if you can find a better digital-publishing tool, use that. But I’m never going back to the way I used to work.

    1 Installation

    2 Quick tour

      2.1 Creating a source file

      2.2 Running a source file

      2.3 Naming, saving, and rendering a source file

      2.4 The project server

      2.5 Intermission

      2.6 Pollen as a preprocessor

      2.7 Markdown mode

      2.8 Markup mode

      2.9 Templates

      2.10 PS for Scribble users

      2.11 The end of the beginning

    3 Backstory

      3.1 Web development and its discontents

      3.2 The better idea: a programming model

      3.3 “Now you have two problems”

      3.4 Rethinking the solution for digital books

      3.5 Enter Racket

      3.6 What is Pollen?

    4 The big picture

      4.1 The book is a program

      4.2 One language, multiple dialects

      4.3 Development environment

      4.4 A special data structure for HTML

      4.5 Pollen command syntax

      4.6 The preprocessor

      4.7 Templated source files

      4.8 Pagetrees

    5 Using raco pollen

      5.1 Making sure raco pollen works

      5.2 raco pollen

      5.3 raco pollen help

      5.4 raco pollen start

      5.5 raco pollen render

      5.6 raco pollen clone

    6 File formats

      6.1 Source formats

        6.1.1 Command syntax using ◊

        6.1.2 Any command is valid

        6.1.3 Standard exports

        6.1.4 Custom exports

        6.1.5 The project-require.rkt file

        6.1.6 Preprocessor (.pp extension)

        6.1.7 Markdown (.pmd extension)

        6.1.8 Markup (.pm extension)

        6.1.9 Pagetree (.ptree extension)

      6.2 Utility formats

        6.2.1 Scribble (.scrbl extension)

        6.2.2 Null (.p extension)

    7 ◊ command overview

      7.1 The golden rule

      7.2 The lozenge glyph (◊)

      7.3 The two command modes: text mode & Racket mode

        7.3.1 The command name

          7.3.1.1 Invoking tag functions

          7.3.1.2 Invoking other functions

          7.3.1.3 Inserting the value of a variable

          7.3.1.4 Inserting a comment

        7.3.2 The Racket arguments

        7.3.3 The text argument

      7.4 Further reading

    8 Module reference

      8.1 Cache

      8.2 Decode

        8.2.1 Block

        8.2.2 Typography

      8.3 File

      8.4 Pagetree

        8.4.1 Navigation

        8.4.2 Utilities

      8.5 Render

      8.6 Template

      8.7 Tag

      8.8 Top

      8.9 World

    9 Acknowledgments

    10 License & source code

    Index

 
\ No newline at end of file +Pollen: the book is a program
6.0.1.6

Pollen: the book is a program

Matthew Butterick <mb@mbtype.com>

 #lang pollen package: pollen

Pollen is a publishing system that helps authors create beautiful and functional web-based books. Pollen includes tools for writing, designing, programming, testing, and publishing.

I used Pollen to create my book Butterick’s Practical Typography. Sure, go take a look. Is it better than the last digital book you encountered? Yes it is. Would you like your book to look like that? If so, keep reading.

At the core of Pollen is an argument: +
  • First, that digital books should be the best books we’ve ever had. So far, they’re not even close.

  • Second, that because digital books are software, an author shouldn’t think of a book as merely data. The book is a program.

  • Third, that the way we make digital books better than their predecessors is by exploiting this programmability.

That’s what Pollen is for.

Not that you need to be a programmer to use Pollen. On the contrary, the Pollen language is markup-based, so you can write & edit text naturally. But when you want to automate repetitive tasks, add cross-references, or pull in data from other sources, you can access a full programming language from within the text.

That language is Racket. I chose Racket because while the idea for Pollen had been with me for several years, it simply wasn’t possible to build it with other languages. So if it’s unfamiliar to you, don’t panic. It was unfamiliar to me. Once you see what you can do with Pollen & Racket, you may be persuaded. I was.

Or, if you can find a better digital-publishing tool, use that. But I’m never going back to the way I used to work.

    1 Installation

    2 Quick tour

      2.1 Creating a source file

      2.2 Running a source file

      2.3 Naming, saving, and rendering a source file

      2.4 The project server

      2.5 Intermission

      2.6 Pollen as a preprocessor

      2.7 Markdown mode

      2.8 Markup mode

      2.9 Templates

      2.10 PS for Scribble users

      2.11 The end of the beginning

    3 Backstory

      3.1 Web development and its discontents

      3.2 The better idea: a programming model

      3.3 “Now you have two problems”

      3.4 Rethinking the solution for digital books

      3.5 Enter Racket

      3.6 What is Pollen?

    4 The big picture

      4.1 The book is a program

      4.2 One language, multiple dialects

      4.3 Development environment

      4.4 A special data structure for HTML

      4.5 Pollen command syntax

      4.6 The preprocessor

      4.7 Templated source files

      4.8 Pagetrees

    5 First tutorial

      5.1 Prerequisites

      5.2 The relationship of Racket & Pollen

      5.3 Starting a new file in DrRacket

        5.3.1 Setting the #lang line

        5.3.2 Putting in the text of the poem

        5.3.3 Saving & naming your source file

      5.4 Using the project server

        5.4.1 Starting the project server with raco pollen

        5.4.2 Using the dashboard

        5.4.3 Source files in the dashboard

      5.5 Working with the preprocessor

        5.5.1 Setting up a preprocessor source file

        5.5.2 Creating valid HTML output

        5.5.3 Adding commands

        5.5.4 Racket basics (if you’re not familiar)

        5.5.5 Defining variables with commands

        5.5.6 Inserting values from variables

        5.5.7 Inserting variables within CSS

      5.6 First tutorial complete

    6 Using raco pollen

      6.1 Making sure raco pollen works

      6.2 raco pollen

      6.3 raco pollen help

      6.4 raco pollen start

      6.5 raco pollen render

      6.6 raco pollen clone

    7 File formats

      7.1 Source formats

        7.1.1 Command syntax using ◊

        7.1.2 Any command is valid

        7.1.3 Standard exports

        7.1.4 Custom exports

        7.1.5 The project-require.rkt file

        7.1.6 Preprocessor (.pp extension)

        7.1.7 Markdown (.pmd extension)

        7.1.8 Markup (.pm extension)

        7.1.9 Pagetree (.ptree extension)

      7.2 Utility formats

        7.2.1 Scribble (.scrbl extension)

        7.2.2 Null (.p extension)

    8 ◊ command overview

      8.1 The golden rule

      8.2 The lozenge glyph (◊)

      8.3 The two command modes: text mode & Racket mode

        8.3.1 The command name

          8.3.1.1 Invoking tag functions

          8.3.1.2 Invoking other functions

          8.3.1.3 Inserting the value of a variable

          8.3.1.4 Inserting a comment

        8.3.2 The Racket arguments

        8.3.3 The text argument

      8.4 Further reading

    9 Module reference

      9.1 Cache

      9.2 Decode

        9.2.1 Block

        9.2.2 Typography

      9.3 File

      9.4 Pagetree

        9.4.1 Navigation

        9.4.2 Utilities

      9.5 Render

      9.6 Template

      9.7 Tag

      9.8 Top

      9.9 World

    10 Acknowledgments

    11 License & source code

    Index

 
\ No newline at end of file diff --git a/doc/project-server.png b/doc/project-server.png new file mode 100644 index 0000000000000000000000000000000000000000..19131b1c13101a1dedc3c01b65448e0999c0bd06 GIT binary patch literal 273017 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 c#;0pATeZ&O*Z*0EtR>rzw-MrTf(NCw?~2Q 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

s7Z#rl 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 z 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ⅆ{6WCuc6Yy-i4k+% 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 CRke`- literal 0 HcmV?d00001 diff --git a/doc/quick-tour.html b/doc/quick-tour.html index 684b6fd..3359998 100644 --- a/doc/quick-tour.html +++ b/doc/quick-tour.html @@ -1,2 +1,2 @@ -2 Quick tour

2 Quick tour

2.1 Creating a source file

Assuming you’ve installed Racket & Pollen, launch DrRacket.

Open a new document. Change the top line to:

#lang pollen

The first line of every Pollen source file will start with #lang pollen.

2.2 Running a source file

Add a second line to your source file so it reads:

#lang pollen
Hello world

Click the Run button. In the interactions window, you’ll see the result:

Hello world

Not bad. I think Pollen just won the Hello World Tournament.

You can work with Pollen source files in any text editor. The key advantage of DrRacket is that you can preview the results by running the file.

Try editing your source file:

#lang pollen
Goodbye Stranger
Breakfast in America
Take the Long Way Home

You don’t have to use Supertramp song titles. Any text will do. When you click Run again, you’ll see whatever you typed:

Goodbye Stranger
Breakfast in America
Take the Long Way Home

We won’t do it a third time. You get the point — any plain text is valid within a Pollen source file, and gets printed as is. You never have to perform the incantations of typical programming languages:

print "Hello world"

document.write('Hello world');

printf("Hello world");

In Pollen, what you write is what you get.

2.3 Naming, saving, and rendering a source file

Save this file with the name hello.txt.pp in any convenient directory. The desktop is fine.

Open a terminal window and issue two commands:

> cd [directory containing your file]

> raco pollen render hello.txt.pp

After a moment, a new file will appear called hello.txt. Let’s see what’s in it:

> cat hello.txt

Goodbye Stranger

Breakfast in America

Take the Long Way Home

You’ve just learned three things:

  • Pollen commands in the terminal begin with raco pollen, followed by a specific command (in this case render) and sometimes an argument (in this case hello.txt.pp).

  • The render command takes the ouput from your source file — meaning, the result you previewed in DrRacket in the previous step — and saves it to another file.

  • The name of the output file is the same as the source file, minus the Pollen source extension. So hello.txt.pp becomes hello.txt.

Try editing the text in the hello.txt.pp source file and running raco pollen render hello.txt.pp again. The old hello.txt will be replaced with a new one showing your changes. And so you’ve learned a fourth thing:

  • Pollen works by rendering output files from source files. Output files can be overwritten. Therefore, you should only make edits to your source files.

2.4 The project server

You’ve just learned two ways to see the output of a Pollen source file — first, you ran it in DrRacket. Then, you rendered it to an output file.

Now here’s a third: the Pollen project server. Here’s how you start it. Return to your terminal window and issue two commands:

> cd [directory containing your hello.txt.pp file]

> raco pollen start

After a moment, you’ll see the startup message:

Welcome to Pollen 0.001 (Racket 6.0.0.5)

Project root is /path/to/your/directory

Project server is http://localhost:8080 (Ctrl-C to exit)

Project dashboard is http://localhost:8080/index.ptree

Ready to rock

Open a web browser and point it at http://localhost:8080/index.ptree. The top of the window will say Project root. Below that will be a listing of the files in the directory.

Among them will be hello.txt, with a greyed-out .pp extension. Click on it, and you’ll be taken to http://localhost:8080/hello.txt, where you’ll see:

Goodbye Stranger

Breakfast in America

Take the Long Way Home

That’s the boring part. Here’s the good part. Leave the project server running. Open your source file again in DrRacket and edit it as follows:

"hello.txt.pp"

#lang pollen
Mean Street
Panama
Hear About It Later

Go back to your web browser and reload http://localhost:8080/hello.txt. Now you’ll see this:

Mean Street

Panama

Hear About It Later

Notice what happened — the Pollen project server dynamically regenerated the output file (hello.txt) from the source file (hello.txt.pp) after you edited the source. If you like, try making some more changes to hello.txt.pp, and reloading the browser to see the updates in hello.txt.

2.5 Intermission

That covers input & output. Now let’s circle back and look at what else you can do with Pollen (beyond the epic achievement of displaying plain text in a web browser).

For the rest of this tutorial, I recommend keeping two windows on screen: a web-browser window pointed at your project server (the main URL is http://localhost:8080/index.ptree) and the DrRacket editing window.

2.6 Pollen as a preprocessor

A preprocessor is a tool for making systematic, automated changes to a source file before the main processing happens. A preprocessor can also be used to add programming logic to files that otherwise don’t support it.

For instance, HTML. In DrRacket, create a new file called margin.html.pp in your project directory:

"margin.html.pp"

#lang pollen
<body style="margin: 5em; border:1px solid black">
5em is the inset.
</body>

The “.pp” file extension — which you saw before, with hello.txt.pp — stands for “Pollen preprocessor.” You can use the Pollen preprocessor with any text-based file by inserting #lang pollen as the first line, and adding the .pp file extension.

But for now, go to your project dashboard and click on margin.html. You should see a black box containing the text “5em is the inset.”

Let’s suppose you want to change the inset to 30%. Without a preprocessor, you’d have to search & replace each value. But with a preprocessor, you can move the inset value into a variable, and update it from that one location. So first, introduce a variable called my-inset by using the define command:

"margin.html.pp"

#lang pollen
◊define[my-inset]{30%}
<body style="margin: 10em; border:1px solid black">
10em is the inset.
</body>

The ◊ character is called a lozenge. In Pollen, the lozenge is a special character that marks anything Pollen should interpret as a command (rather than plain text). The whole command ◊define[my-inset]{30%} means “create a variable called my-inset and give it the value 30%.”

Then put the variable into the HTML like so, this time using the ◊ character with the variable name in the two places the value appears:

"margin.html.pp"

#lang pollen
◊define[my-inset]{30%}
<body style="margin: ◊my-inset; border:1px solid black">
◊my-inset is the inset.
</body>

Now reload margin.html. You’ll see that the size of the margin has changed (because of the change to the style attribute) and so has the text of the HTML. If you like, try editing my-inset with different values and reloading the page. You can also try using define to create another variable (for instance, to change the color of the box border).

Still, this is the tiniest tip of the iceberg. The Pollen preprocessor gives you access to everything in the Racket programming language — including math functions, text manipulation, and so on.

2.7 Markdown mode

When used as a preprocessor, Pollen’s rule is that what you write is what you get. But if you’re targeting HTML, who wants to type out all those <tedious>tags</tedious>? You can make Pollen do the heavy lifting by using it as a source decoder.

For instance, Markdown mode. Markdown is a simplified notation system for HTML. You can use Pollen’s Markdown decoder by inserting #lang pollen as the first line, and adding the .pmd file extension.

Try it. In DrRacket, create a file with the following lines and save it as downtown.html.pmd:

"downtown.html.pmd"

#lang pollen
 
Pollen + Markdown
-----------------
 
+ You **wanted** it  you _got_ it.
 
+ [search for Racket](https://google.com/search?q=racket)

As before, go to the dashboard for the project server. This time, click the link for downtown.html. You’ll see something like this:

Pollen + Markdown

As usual, you’re welcome to edit downtown.html.pmd and then refresh the web browser to see the changes.

In Markdown mode, you can still embed Pollen commands within the source as you did in preprocessor mode. Just keep in mind that your commands need to produce valid Markdown (as opposed to raw HTML). For instance, use define to create a variable called metal, and insert it into the Markdown:

"downtown.html.pmd"

#lang pollen
◊define[metal]{Plutonium}
 
Pollen + ◊metal
--------
 
+ You **wanted** ◊metal  you _got_ it.
 
+ [search for ◊metal](https://google.com/search?q=◊metal)

Refresh downtown.html in the browser:

Pollen + Plutonium

Pollen is handling two tasks here: interpreting the commands in the source, and then converting the Markdown to HTML. But what if you wanted to use Pollen as a preprocessor that outputs a Markdown file? No problem — just change the source name from downtown.html.pmd to downtown.md.pp. Changing the extension from .pmd to .pp switches Pollen from Markdown mode back to preprocessor mode. And changing the base name from downtown.html to downtown.md updates the name of the output file.

2.8 Markup mode

If all you need to do is produce basic HTML, Markdown is great. But if you need to do semantic markup or other kinds of custom markup, it’s not flexible enough.

In that case, you can use Pollen markup mode. To use Pollen markup, insert #lang pollen as the first line of your source file, and add a .pm file extension.

Compared to Markdown mode, Pollen markup mode is wide open. Markdown mode gives you a limited set of formatting tools (i.e., the ones supported by Markdown). But in markup mode, you can use any tags you want. Markdown mode decodes the source in a fixed way (i.e., with the Markdown decoder). But markup mode lets you build any decoder you want.

Let’s convert our Markdown example into Pollen markup. Marking up content is simple: insert the lozenge character () followed by the name of the tag (◊tag), followed by the content of the tag in curly braces (◊tag{content}). In DrRacket, create a new file called uptown.html.pm as follows:

"uptown.html.pm"

#lang pollen
 
◊headline{Pollen markup}
 
◊items{
 
◊item{You ◊strong{wanted} it  you ◊em{got} it.}
 
◊item{◊link["https://google.com/search?q=racket"]{search for Racket}}}

Go to the project dashboard and click on uptown.html. You’ll see something like this:

Pollen markup You wanted it — you got it. https://google.com/search?q=racketsearch for Racket

That’s not right. What happened?

We marked up the source using a combination of standard HTML tags (strong, em) and nonstandard ones (headline, items, item, link). This is valid Pollen markup. (In fact, if you look at the generated source, you’ll see that they didn’t disappear.) But since we’re targeting HTML, we need to convert our custom tags into valid HTML tags.

For that, we’ll make a special file called project-require.rkt. This is a file in the standard Racket language that provides helper functions to decode the source. The definitions won’t make sense yet. But this is the quick tour, so all you need to do is copy, paste, and save:

"project-require.rkt"

#lang racket/base
(require pollen/tag)
(provide (all-defined-out))
(define headline (make-tag-function 'h2))
(define items (make-tag-function 'ul))
(define item (make-tag-function 'li 'p))
(define (link url text) `(a [[href ,url]] ,text))

Return to the project dashboard and click on uptown.html. Now you’ll get the right result:

Pollen markup

Markup mode takes a little more effort to set up. But it also allows you more flexibility. If you want to do semantic markup, or convert your source into multiple output formats, or handle complex page layouts — it’s the way to go.

2.9 Templates

The HTML pages we just made looked pretty dull. For the last stop on the quick tour, let’s fix that.

Pollen source files that are written in Markdown or markup mode (i.e., .pmd or .pm files) are rendered with a template. A template is not a standalone Pollen source file. It’s a file of the output type — e.g., CSS, HTML, XML — where you put the stuff that needs to be consistent between output files. The template also contains template variables that mark where values from the Pollen source file should be inserted.

When it needs a template, Pollen first looks for a file in the project directory named template.[output extension of source]. For uptown.html.pm, the output extension will be .html, thus Pollen will look for template.html.

So let’s create template.html. Make a new file that with the following lines and save it to the same directory as uptown.html.pm:

"template.html"

<html><head><meta charset="UTF-8"/></head>

<body style="background: #f6f6f6">

<div style="background: white; margin: 3em;

border:10px double gray; padding: 3em; font-size: 130%;">

This file is ◊here

<hr />

◊->html{◊doc}

</div></body></html>

This is a simple HTML file that should look familiar, except for the two template variables. The first, here, contains the name of the current source file. As before, the lozenge character marks it as a Pollen command rather than text, so you write it as ◊here. The other command, ◊->html{◊doc}, takes the content from the source file, which is contained in a variable called doc, and converts it to HTML with a Pollen function called ->html.

Go back to your web browser and reload uptown.html. (Or downtown.html — both will work.) The page will be rendered with the new template.html. As before, you can edit the template or the source and the project server will dynamically update the output file.

2.10 PS for Scribble users

Pollen can also be used as a dynamic preview server for Scribble files. From your terminal, do the following:

> cd [directory containing your Scribble files]

> raco pollen start

On the project dashboard, you’ll see your [filename].scrbl files listed as [filename].html. This may not represent the ultimate structure of your Scribble project — you may end up combining multiple Scribble source files into one HTML file, or making multiple HTML files from one Scribble source — but it’s handy for checking your work as you go.

2.11 The end of the beginning

Now you’ve seen the key features of Pollen. What do you think?

  • “So it’s like WordPress, but harder to use?” I was a happy WordPress user for several years. If you need a blog, it’s great. But the farther you get from blogs, the more it becomes like teaching an elephant to pirouette. And for those who like to solve problems with programming, PHP is, um, limited.

  • “What about pairing a Python template system and Python web server?” Good idea. I even tried it. But Python template systems don’t offer you Python — they offer you pidgin dialects that ain’t very Pythonic. Also, Python’s handing of markup-based data structures is cumbersome.

  • “Haven’t you heard of Jekyll?” Yes. If everything you need to write is expressible in Markdown, it’s great. If you need more than that, you’re stuck.

  • “Sounds a lot like LaTeX. Why not use that?” Also a good idea. LaTeX gets a lot of things right. But it wasn’t designed for web publishing.

  • “Eh, there are plenty of adequate options. Why should I learn a system written in Racket, which I’ve never used?” A salient objection. It’s also the question I asked myself before I committed to Racket. But publishing systems that are author- or designer-friendly tend to be programmer-hostile, and vice versa. Racket is the only language I found that could meet my requirements.

But don’t take my word for it. The rest of this documentation will show you the cool, useful, and sophisticated things you can do with Pollen. If there’s another tool that suits you better, great. Keep in mind that I didn’t make Pollen because I’m a programmer. I’m a writer who wants to make electronic books that are better than the ones we have now. And for that, I needed a better tool.

 
\ No newline at end of file +2 Quick tour
6.0.1.6

2 Quick tour

2.1 Creating a source file

Assuming you’ve installed Racket & Pollen, launch DrRacket.

Open a new document. Change the top line to:

#lang pollen

The first line of every Pollen source file will start with #lang pollen.

2.2 Running a source file

Add a second line to your source file so it reads:

#lang pollen
Hello world

Click the Run button. In the interactions window, you’ll see the result:

Hello world

Not bad. I think Pollen just won the Hello World Tournament.

You can work with Pollen source files in any text editor. The key advantage of DrRacket is that you can preview the results by running the file.

Try editing your source file:

#lang pollen
Goodbye Stranger
Breakfast in America
Take the Long Way Home

You don’t have to use Supertramp song titles. Any text will do. When you click Run again, you’ll see whatever you typed:

Goodbye Stranger
Breakfast in America
Take the Long Way Home

We won’t do it a third time. You get the point — any plain text is valid within a Pollen source file, and gets printed as is. You never have to perform the incantations of typical programming languages:

print "Hello world"

document.write('Hello world');

printf("Hello world");

In Pollen, what you write is what you get.

2.3 Naming, saving, and rendering a source file

Save this file with the name hello.txt.pp in any convenient directory. The desktop is fine.

Open a terminal window and issue two commands:

> cd [directory containing your file]

> raco pollen render hello.txt.pp

After a moment, a new file will appear called hello.txt. Let’s see what’s in it:

> cat hello.txt

Goodbye Stranger

Breakfast in America

Take the Long Way Home

You’ve just learned three things:

  • Pollen commands in the terminal begin with raco pollen, followed by a specific command (in this case render) and sometimes an argument (in this case hello.txt.pp).

  • The render command takes the ouput from your source file — meaning, the result you previewed in DrRacket in the previous step — and saves it to another file.

  • The name of the output file is the same as the source file, minus the Pollen source extension. So hello.txt.pp becomes hello.txt.

Try editing the text in the hello.txt.pp source file and running raco pollen render hello.txt.pp again. The old hello.txt will be replaced with a new one showing your changes. And so you’ve learned a fourth thing:

  • Pollen works by rendering output files from source files. Output files can be overwritten. Therefore, you should only make edits to your source files.

2.4 The project server

You’ve just learned two ways to see the output of a Pollen source file — first, you ran it in DrRacket. Then, you rendered it to an output file.

Now here’s a third: the Pollen project server. Here’s how you start it. Return to your terminal window and issue two commands:

> cd [directory containing your hello.txt.pp file]

> raco pollen start

After a moment, you’ll see the startup message:

Welcome to Pollen 0.001 (Racket 6.0.0.5)

Project root is /path/to/your/directory

Project server is http://localhost:8080 (Ctrl-C to exit)

Project dashboard is http://localhost:8080/index.ptree

Ready to rock

Open a web browser and point it at http://localhost:8080/index.ptree. The top of the window will say Project root. Below that will be a listing of the files in the directory.

Among them will be hello.txt, with a greyed-out .pp extension. Click on it, and you’ll be taken to http://localhost:8080/hello.txt, where you’ll see:

Goodbye Stranger

Breakfast in America

Take the Long Way Home

That’s the boring part. Here’s the good part. Leave the project server running. Open your source file again in DrRacket and edit it as follows:

"hello.txt.pp"

#lang pollen
Mean Street
Panama
Hear About It Later

Go back to your web browser and reload http://localhost:8080/hello.txt. Now you’ll see this:

Mean Street

Panama

Hear About It Later

Notice what happened — the Pollen project server dynamically regenerated the output file (hello.txt) from the source file (hello.txt.pp) after you edited the source. If you like, try making some more changes to hello.txt.pp, and reloading the browser to see the updates in hello.txt.

2.5 Intermission

That covers input & output. Now let’s circle back and look at what else you can do with Pollen (beyond the epic achievement of displaying plain text in a web browser).

For the rest of this tutorial, I recommend keeping two windows on screen: a web-browser window pointed at your project server (the main URL is http://localhost:8080/index.ptree) and the DrRacket editing window.

2.6 Pollen as a preprocessor

A preprocessor is a tool for making systematic, automated changes to a source file before the main processing happens. A preprocessor can also be used to add programming logic to files that otherwise don’t support it.

For instance, HTML. In DrRacket, create a new file called margin.html.pp in your project directory:

"margin.html.pp"

#lang pollen
<body style="margin: 5em; border:1px solid black">
5em is the inset.
</body>

The “.pp” file extension — which you saw before, with hello.txt.pp — stands for “Pollen preprocessor.” You can use the Pollen preprocessor with any text-based file by inserting #lang pollen as the first line, and adding the .pp file extension.

But for now, go to your project dashboard and click on margin.html. You should see a black box containing the text “5em is the inset.”

Let’s suppose you want to change the inset to 30%. Without a preprocessor, you’d have to search & replace each value. But with a preprocessor, you can move the inset value into a variable, and update it from that one location. So first, introduce a variable called my-inset by using the define command:

"margin.html.pp"

#lang pollen
◊define[my-inset]{30%}
<body style="margin: 10em; border:1px solid black">
10em is the inset.
</body>

The ◊ character is called a lozenge. In Pollen, the lozenge is a special character that marks anything Pollen should interpret as a command (rather than plain text). The whole command ◊define[my-inset]{30%} means “create a variable called my-inset and give it the value 30%.”

Then put the variable into the HTML like so, this time using the ◊ character with the variable name in the two places the value appears:

"margin.html.pp"

#lang pollen
◊define[my-inset]{30%}
<body style="margin: ◊my-inset; border:1px solid black">
◊my-inset is the inset.
</body>

Now reload margin.html. You’ll see that the size of the margin has changed (because of the change to the style attribute) and so has the text of the HTML. If you like, try editing my-inset with different values and reloading the page. You can also try using define to create another variable (for instance, to change the color of the box border).

Still, this is the tiniest tip of the iceberg. The Pollen preprocessor gives you access to everything in the Racket programming language — including math functions, text manipulation, and so on.

2.7 Markdown mode

When used as a preprocessor, Pollen’s rule is that what you write is what you get. But if you’re targeting HTML, who wants to type out all those <tedious>tags</tedious>? You can make Pollen do the heavy lifting by using it as a source decoder.

For instance, Markdown mode. Markdown is a simplified notation system for HTML. You can use Pollen’s Markdown decoder by inserting #lang pollen as the first line, and adding the .pmd file extension.

Try it. In DrRacket, create a file with the following lines and save it as downtown.html.pmd:

"downtown.html.pmd"

#lang pollen
 
Pollen + Markdown
-----------------
 
+ You **wanted** it  you _got_ it.
 
+ [search for Racket](https://google.com/search?q=racket)

As before, go to the dashboard for the project server. This time, click the link for downtown.html. You’ll see something like this:

Pollen + Markdown

As usual, you’re welcome to edit downtown.html.pmd and then refresh the web browser to see the changes.

In Markdown mode, you can still embed Pollen commands within the source as you did in preprocessor mode. Just keep in mind that your commands need to produce valid Markdown (as opposed to raw HTML). For instance, use define to create a variable called metal, and insert it into the Markdown:

"downtown.html.pmd"

#lang pollen
◊define[metal]{Plutonium}
 
Pollen + ◊metal
--------
 
+ You **wanted** ◊metal  you _got_ it.
 
+ [search for ◊metal](https://google.com/search?q=◊metal)

Refresh downtown.html in the browser:

Pollen + Plutonium

Pollen is handling two tasks here: interpreting the commands in the source, and then converting the Markdown to HTML. But what if you wanted to use Pollen as a preprocessor that outputs a Markdown file? No problem — just change the source name from downtown.html.pmd to downtown.md.pp. Changing the extension from .pmd to .pp switches Pollen from Markdown mode back to preprocessor mode. And changing the base name from downtown.html to downtown.md updates the name of the output file.

2.8 Markup mode

If all you need to do is produce basic HTML, Markdown is great. But if you need to do semantic markup or other kinds of custom markup, it’s not flexible enough.

In that case, you can use Pollen markup mode. To use Pollen markup, insert #lang pollen as the first line of your source file, and add a .pm file extension.

Compared to Markdown mode, Pollen markup mode is wide open. Markdown mode gives you a limited set of formatting tools (i.e., the ones supported by Markdown). But in markup mode, you can use any tags you want. Markdown mode decodes the source in a fixed way (i.e., with the Markdown decoder). But markup mode lets you build any decoder you want.

Let’s convert our Markdown example into Pollen markup. Marking up content is simple: insert the lozenge character () followed by the name of the tag (◊tag), followed by the content of the tag in curly braces (◊tag{content}). In DrRacket, create a new file called uptown.html.pm as follows:

"uptown.html.pm"

#lang pollen
 
◊headline{Pollen markup}
 
◊items{
 
◊item{You ◊strong{wanted} it  you ◊em{got} it.}
 
◊item{◊link["https://google.com/search?q=racket"]{search for Racket}}}

Go to the project dashboard and click on uptown.html. You’ll see something like this:

Pollen markup You wanted it — you got it. https://google.com/search?q=racketsearch for Racket

That’s not right. What happened?

We marked up the source using a combination of standard HTML tags (strong, em) and nonstandard ones (headline, items, item, link). This is valid Pollen markup. (In fact, if you look at the generated source, you’ll see that they didn’t disappear.) But since we’re targeting HTML, we need to convert our custom tags into valid HTML tags.

For that, we’ll make a special file called project-require.rkt. This is a file in the standard Racket language that provides helper functions to decode the source. The definitions won’t make sense yet. But this is the quick tour, so all you need to do is copy, paste, and save:

"project-require.rkt"

#lang racket/base
(require pollen/tag)
(provide (all-defined-out))
(define headline (make-tag-function 'h2))
(define items (make-tag-function 'ul))
(define item (make-tag-function 'li 'p))
(define (link url text) `(a [[href ,url]] ,text))

Return to the project dashboard and click on uptown.html. Now you’ll get the right result:

Pollen markup

Markup mode takes a little more effort to set up. But it also allows you more flexibility. If you want to do semantic markup, or convert your source into multiple output formats, or handle complex page layouts — it’s the way to go.

2.9 Templates

The HTML pages we just made looked pretty dull. For the last stop on the quick tour, let’s fix that.

Pollen source files that are written in Markdown or markup mode (i.e., .pmd or .pm files) are rendered with a template. A template is not a standalone Pollen source file. It’s a file of the output type — e.g., CSS, HTML, XML — where you put the stuff that needs to be consistent between output files. The template also contains template variables that mark where values from the Pollen source file should be inserted.

When it needs a template, Pollen first looks for a file in the project directory named template.[output extension of source]. For uptown.html.pm, the output extension will be .html, thus Pollen will look for template.html.

So let’s create template.html. Make a new file that with the following lines and save it to the same directory as uptown.html.pm:

"template.html"

<html><head><meta charset="UTF-8"/></head>

<body style="background: #f6f6f6">

<div style="background: white; margin: 3em;

border:10px double gray; padding: 3em; font-size: 130%;">

This file is ◊here

<hr />

◊->html{◊doc}

</div></body></html>

This is a simple HTML file that should look familiar, except for the two template variables. The first, here, contains the name of the current source file. As before, the lozenge character marks it as a Pollen command rather than text, so you write it as ◊here. The other command, ◊->html{◊doc}, takes the content from the source file, which is contained in a variable called doc, and converts it to HTML with a Pollen function called ->html.

Go back to your web browser and reload uptown.html. (Or downtown.html — both will work.) The page will be rendered with the new template.html. As before, you can edit the template or the source and the project server will dynamically update the output file.

2.10 PS for Scribble users

Pollen can also be used as a dynamic preview server for Scribble files. From your terminal, do the following:

> cd [directory containing your Scribble files]

> raco pollen start

On the project dashboard, you’ll see your [filename].scrbl files listed as [filename].html. This may not represent the ultimate structure of your Scribble project — you may end up combining multiple Scribble source files into one HTML file, or making multiple HTML files from one Scribble source — but it’s handy for checking your work as you go.

2.11 The end of the beginning

Now you’ve seen the key features of Pollen. What do you think?

  • “So it’s like WordPress, but harder to use?” I was a happy WordPress user for several years. If you need a blog, it’s great. But the farther you get from blogs, the more it becomes like teaching an elephant to pirouette. And for those who like to solve problems with programming, PHP is, um, limited.

  • “What about pairing a Python template system and Python web server?” Good idea. I even tried it. But Python template systems don’t offer you Python — they offer you pidgin dialects that ain’t very Pythonic. Also, Python’s handing of markup-based data structures is cumbersome.

  • “Haven’t you heard of Jekyll?” Yes. If everything you need to write is expressible in Markdown, it’s great. If you need more than that, you’re stuck.

  • “Sounds a lot like LaTeX. Why not use that?” Also a good idea. LaTeX gets a lot of things right. But it wasn’t designed for web publishing.

  • “Eh, there are plenty of adequate options. Why should I learn a system written in Racket, which I’ve never used?” A salient objection. It’s also the question I asked myself before I committed to Racket. But publishing systems that are author- or designer-friendly tend to be programmer-hostile, and vice versa. Racket is the only language I found that could meet my requirements.

But don’t take my word for it. The rest of this documentation will show you the cool, useful, and sophisticated things you can do with Pollen. If there’s another tool that suits you better, great. Keep in mind that I didn’t make Pollen because I’m a programmer. I’m a writer who wants to make electronic books that are better than the ones we have now. And for that, I needed a better tool.

 
\ No newline at end of file diff --git a/doc/raco-pollen.html b/doc/raco-pollen.html new file mode 100644 index 0000000..f6ba693 --- /dev/null +++ b/doc/raco-pollen.html @@ -0,0 +1,2 @@ + +6 Using raco pollen
6.0.1.6

6 Using raco pollen

Racket provides centralized command-line options through raco (short for racket command, see raco: Racket Command-Line Tools).

Once you install Pollen, you can access the following Pollen-specific commands through raco using the subcommand raco pollen.

6.1 Making sure raco pollen works

Open a terminal window and type:

> raco pollen test

If raco pollen is installed correctly, you’ll see:

raco pollen is installed correctly

But if you get:

raco: Unrecognized command: pollen

You’ll need to fix the problem before proceeding, most likely by reinstalling Pollen (see Installation).

Pro tip: I have an alias in my .bash_profile like so: alias polcom='raco pollen'

6.2 raco pollen

Same as raco pollen help.

6.3 raco pollen help

Displays a list of available commands.

6.4 raco pollen start

Starts the project server from the current directory using the default port, which is the value of the parameter world:current-server-port (by default, port 8080).

This command can be invoked with two optional arguments.

raco pollen start path will start the project server in path rather than the current directory.

> raco pollen start ~/path/to/project/

raco pollen start path port will start the project server in path using port rather than world:current-server-port. This is useful if you want to have multiple project servers running simultaneously.

> raco pollen start ~/path/to/project/

> raco pollen start ~/path/to/project/scribblings 8088

If you want to start in the current directory but with a different port, use . as the path:

> raco pollen start . 8088

6.5 raco pollen render

Renders all preprocessor source files and then all pagetree files found in the current directory.

This command can be invoked with extra arguments.

raco pollen render directory will render the preprocessor source files and pagetree files in the specified directory.

Alternatively, the command can take a variable number of path arguments. raco pollen render path... will render only the paths specified in path.... Consistent with the usual command-line idiom, this can be a single path, a list of paths, or a pattern:

> raco pollen render foo.html.pm

> raco pollen render foo.html.pm bar.html.pm zam.css.pp

> raco pollen render *.html.pm

6.6 raco pollen clone

Makes a copy of the project directory on the desktop, and removes any source files or other Pollen-related files.

raco pollen clobe directory-path will perform the same copying and filtering, but using directory-path as the destination rather than the desktop.

 
\ No newline at end of file diff --git a/doc/reader.html b/doc/reader.html index 25c6a99..15e3ab8 100644 --- a/doc/reader.html +++ b/doc/reader.html @@ -1,28 +1,28 @@ -7 ◊ command overview
6.0.1.6

7 ◊ command overview

7.1 The golden rule

Pollen uses a special character — the lozenge, which looks like this: ◊ — to mark commands within a Pollen source file. So when you put a ◊ in your source, whatever comes next will be treated as a command. If you don’t, it will just be interpreted as plain text.

7.2 The lozenge glyph (◊)

I chose the lozenge as the command marker because a) it appears in almost every font, b) it’s barely used in ordinary typesetting, c) it’s not used in any programming language that I know of, and d) its shape and color allow it to stand out easily in code without being distracting.

Here’s how you type it:

Mac: option + shift + V +8 ◊ command overview

6.0.1.6

8 ◊ command overview

8.1 The golden rule

Pollen uses a special character — the lozenge, which looks like this: ◊ — to mark commands within a Pollen source file. So when you put a ◊ in your source, whatever comes next will be treated as a command. If you don’t, it will just be interpreted as plain text.

8.2 The lozenge glyph (◊)

I chose the lozenge as the command marker because a) it appears in almost every font, b) it’s barely used in ordinary typesetting, c) it’s not used in any programming language that I know of, and d) its shape and color allow it to stand out easily in code without being distracting.

Here’s how you type it:

Mac: option + shift + V
Windows:
-Ubuntu:

Still, if you don’t want to use the lozenge as your command marker, you can use something else. Set Pollen’s world:command-marker value to whatever character you want.

Scribble uses the @ sign as a delimiter. It’s not a bad choice if you only work with Racket files. But as you use Pollen to work on other kinds of text-based files that commonly contain @ signs — HTML pages especially — it gets cumbersome. So I changed it.

But don’t knock the lozenge till you try it.

7.3 The two command modes: text mode & Racket mode

Pollen commands can be entered in one of two modes: text mode or Racket mode. Both modes start with a lozenge ():

 command name [ Racket arguments ... ] { text argument }
 ( Racket expression )

Text-mode commands

A text-mode command has the three possible parts after the :

  • The command name appears immediately after the . Typically it’s a short word.

  • The Racket arguments appear between square brackets. Pollen is partly an interface to the Racket programming language. These arguments are entered using Racket conventions — e.g., a string of text needs to be put in quotes as a "string of text". If you like programming, you’ll end up using these frequently. If you don’t, you won’t.

  • The text argument appears between braces (aka curly brackets). You can put any ordinary text here. Unlike with the Racket arguments, you don’t put quotes around the text.

Each of the three parts is optional. You can also nest commands within each other. However:

  • You can never have spaces between the three parts.

  • Whatever parts you use must always appear in the order above.

Here are a few examples of correct text-mode commands:

#lang pollen
variable-name
tag{Text inside the tag.}
tag['attr: "value"]{Text inside the tag}
get-customer-id["Brennan Huff"]
tag{His ID is get-customer-id["Brennan Huff"].}

And some incorrect examples:

#lang pollen
tag {Text inside the tag.} ; space between first and second parts
tag[Text inside the tag] ; text argument needs to be within braces
tag{Text inside the tag}['attr: "value"] ; wrong order

The next section describes each of these parts in detail.

Racket-mode commands

If you’re familiar with Racket expressions, you can use the Racket-mode commands to embed them within Pollen source files. It’s simple: any Racket expression can become a Pollen command by adding to the front. So in Racket, this code:

#lang racket
(define song "Revolution")
(format "~a #~a" song (* 3 3))

Can be converted to Pollen like so:

#lang pollen
(define song "Revolution")
(format "~a #~a" song (* 3 3))

And in DrRacket, they produce the same output:

Revolution #9

Beyond that, there’s not much to say about Racket mode — any valid expression you can write in Racket will also be a valid Racket-mode Pollen command.

The relationship of text mode and Racket mode

Even if you don’t plan to write a lot of Racket-mode commands, you should be aware that under the hood, Pollen is converting all commands in text mode to Racket mode. So a text-mode command that looks like this:

◊headline[#:size 'enormous]{Man Bites Dog!}

Is actually being turned into a Racket-mode command like this:

(headline #:size 'enormous "Man Bites Dog!")

Thus a text-mode command is just an alternate way of writing a Racket-mode command. (More broadly, all of Pollen is just an alternate way of using Racket.)

The corollary is that you can always write Pollen commands using whichever mode is more convenient or readable. For instance, the earlier example, written in the Racket mode:

#lang pollen
(define song "Revolution")
(format "~a #~a" song (* 3 3))

Can be rewritten using text mode:

#lang pollen
define[song]{Revolution}
format["~a #~a" song (* 3 3)]

And it will work the same way.

7.3.1 The command name

In Pollen, you’ll typically use the command name for one of four purposes:

  • To invoke a tag function.

  • To invoke another function.

  • To insert the value of a variable.

  • To insert a comment.

7.3.1.1 Invoking tag functions

By default, Pollen treats every command name as a tag function. As the name implies, a tag function creates a tagged X-expression with the command name as the tag, and the text argument as the content.

#lang pollen
strong{Fancy Sauce, $1}

'(strong "Fancy Sauce, $1")

To streamline markup, Pollen doesn’t restrict you to a certain set of tags, nor does it make you define your tag functions ahead of time. Just type a tag, and you can start using it.

#lang pollen
utterlyridiculoustagname{Oh really?}
'(utterlyridiculoustagname "Oh really?")

The one restriction is that you can’t invent names for tag functions that are already being used for other commands. For instance, map is a name permanently reserved by the Racket function map. It’s also a rarely-used HTML tag. But gosh, you really want to use it. Problem is, if you invoke it directly, Pollen will think you mean the other map:

#lang pollen
map{Fancy Sauce, $1}

map: arity mismatch;
+Ubuntu:

Still, if you don’t want to use the lozenge as your command marker, you can use something else. Set Pollen’s world:command-marker value to whatever character you want.

Scribble uses the @ sign as a delimiter. It’s not a bad choice if you only work with Racket files. But as you use Pollen to work on other kinds of text-based files that commonly contain @ signs — HTML pages especially — it gets cumbersome. So I changed it.

But don’t knock the lozenge till you try it.

8.3 The two command modes: text mode & Racket mode

Pollen commands can be entered in one of two modes: text mode or Racket mode. Both modes start with a lozenge ():

 command name [ Racket arguments ... ] { text argument }
 ( Racket expression )

Text-mode commands

A text-mode command has the three possible parts after the :

  • The command name appears immediately after the . Typically it’s a short word.

  • The Racket arguments appear between square brackets. Pollen is partly an interface to the Racket programming language. These arguments are entered using Racket conventions — e.g., a string of text needs to be put in quotes as a "string of text". If you like programming, you’ll end up using these frequently. If you don’t, you won’t.

  • The text argument appears between braces (aka curly brackets). You can put any ordinary text here. Unlike with the Racket arguments, you don’t put quotes around the text.

Each of the three parts is optional. You can also nest commands within each other. However:

  • You can never have spaces between the three parts.

  • Whatever parts you use must always appear in the order above.

Here are a few examples of correct text-mode commands:

#lang pollen
variable-name
tag{Text inside the tag.}
tag['attr: "value"]{Text inside the tag}
get-customer-id["Brennan Huff"]
tag{His ID is get-customer-id["Brennan Huff"].}

And some incorrect examples:

#lang pollen
tag {Text inside the tag.} ; space between first and second parts
tag[Text inside the tag] ; text argument needs to be within braces
tag{Text inside the tag}['attr: "value"] ; wrong order

The next section describes each of these parts in detail.

Racket-mode commands

If you’re familiar with Racket expressions, you can use the Racket-mode commands to embed them within Pollen source files. It’s simple: any Racket expression can become a Pollen command by adding to the front. So in Racket, this code:

#lang racket
(define song "Revolution")
(format "~a #~a" song (* 3 3))

Can be converted to Pollen like so:

#lang pollen
(define song "Revolution")
(format "~a #~a" song (* 3 3))

And in DrRacket, they produce the same output:

Revolution #9

Beyond that, there’s not much to say about Racket mode — any valid expression you can write in Racket will also be a valid Racket-mode Pollen command.

The relationship of text mode and Racket mode

Even if you don’t plan to write a lot of Racket-mode commands, you should be aware that under the hood, Pollen is converting all commands in text mode to Racket mode. So a text-mode command that looks like this:

◊headline[#:size 'enormous]{Man Bites Dog!}

Is actually being turned into a Racket-mode command like this:

(headline #:size 'enormous "Man Bites Dog!")

Thus a text-mode command is just an alternate way of writing a Racket-mode command. (More broadly, all of Pollen is just an alternate way of using Racket.)

The corollary is that you can always write Pollen commands using whichever mode is more convenient or readable. For instance, the earlier example, written in the Racket mode:

#lang pollen
(define song "Revolution")
(format "~a #~a" song (* 3 3))

Can be rewritten using text mode:

#lang pollen
define[song]{Revolution}
format["~a #~a" song (* 3 3)]

And it will work the same way.

8.3.1 The command name

In Pollen, you’ll typically use the command name for one of four purposes:

  • To invoke a tag function.

  • To invoke another function.

  • To insert the value of a variable.

  • To insert a comment.

8.3.1.1 Invoking tag functions

By default, Pollen treats every command name as a tag function. As the name implies, a tag function creates a tagged X-expression with the command name as the tag, and the text argument as the content.

#lang pollen
strong{Fancy Sauce, $1}

'(strong "Fancy Sauce, $1")

To streamline markup, Pollen doesn’t restrict you to a certain set of tags, nor does it make you define your tag functions ahead of time. Just type a tag, and you can start using it.

#lang pollen
utterlyridiculoustagname{Oh really?}
'(utterlyridiculoustagname "Oh really?")

The one restriction is that you can’t invent names for tag functions that are already being used for other commands. For instance, map is a name permanently reserved by the Racket function map. It’s also a rarely-used HTML tag. But gosh, you really want to use it. Problem is, if you invoke it directly, Pollen will think you mean the other map:

#lang pollen
map{Fancy Sauce, $1}

map: arity mismatch;
the expected number of arguments does not match the given number
  given: 1
  arguments...:
-    "Fancy Sauce, $1"

What to do? Read on.

7.3.1.2 Invoking other functions

Though every command name starts out as a tag function, it doesn’t necessarily end there. You have two options for invoking other functions: defining your own , or invoking others from Racket.

Defining your own functions

Use the define command to create your own function for a command name. After that, when you use the command name, you’ll get the new behavior. For instance, recall this example showing the default tag-function behavior:

#lang pollen
strong{Fancy Sauce, $1}

'(strong "Fancy Sauce, $1")

We can define strong to do something else, like add to the text:

#lang pollen
(define (strong text) `(strong ,(format "Hey! Listen up! ~a" text)))
strong{Fancy Sauce, $1}

'(strong "Hey! Listen up! Fancy Sauce, $1")

The replacement function has to accept any arguments that might get passed along, but it doesn’t have to do anything with them. For instance, this function definition won’t work because strong is going to get a text argument that it’s not defined to handle:

#lang pollen
(define (strong) '(fib "1 1 2 3 5 8 13 ..."))
strong{Fancy Sauce, $1}

strong: arity mismatch;
+    "Fancy Sauce, $1"

What to do? Read on.

8.3.1.2 Invoking other functions

Though every command name starts out as a tag function, it doesn’t necessarily end there. You have two options for invoking other functions: defining your own , or invoking others from Racket.

Defining your own functions

Use the define command to create your own function for a command name. After that, when you use the command name, you’ll get the new behavior. For instance, recall this example showing the default tag-function behavior:

#lang pollen
strong{Fancy Sauce, $1}

'(strong "Fancy Sauce, $1")

We can define strong to do something else, like add to the text:

#lang pollen
(define (strong text) `(strong ,(format "Hey! Listen up! ~a" text)))
strong{Fancy Sauce, $1}

'(strong "Hey! Listen up! Fancy Sauce, $1")

The replacement function has to accept any arguments that might get passed along, but it doesn’t have to do anything with them. For instance, this function definition won’t work because strong is going to get a text argument that it’s not defined to handle:

#lang pollen
(define (strong) '(fib "1 1 2 3 5 8 13 ..."))
strong{Fancy Sauce, $1}

strong: arity mismatch;
the expected number of arguments does not match the given number
  expected: 0
  given: 1
  arguments...:
-    "Fancy Sauce, $1"

Whereas in this version, strong accepts an argument called text, but then ignores it:

#lang pollen
(define (strong text) '(fib "1 1 2 3 5 8 13 ..."))
strong{Fancy Sauce, $1}

'(fib "1 1 2 3 5 8 13 ...")

You can attach any behavior to a command name. As your project evolves, you can also update the behavior of a command name. In that way, Pollen commands become a set of hooks to which you can attach more elaborate processing.

Using Racket functions

You aren’t limited to functions you define. Any function from Racket, or any Racket library, can be invoked directly by using it as a command name. Here’s the function range, which creates a list of numbers:

#lang pollen
range[1 20]

'(range 1 20)

Hold on — that’s not what we want. Where’s the list of numbers? The problem here is that we didn’t explicitly import the racket/list library, which contains the definition for range. (If you need to find out what library contains a certain function, the Racket documentation will tell you.) Without racket/list, Pollen just thinks we’re trying to use range as a tag function (and if we had been, then '(range 1 20) would’ve been the right result).

We fix this by using the require command to bring in the racket/list library, which contains the range we want:

#lang pollen
(require racket/list)
range[1 20]

'(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19)

Of course, you can also invoke Racket functions indirectly, by attaching them to functions you define for command names:

#lang pollen
(require racket/list)
(define (rick start finish) (range start finish))
rick[1 20]

'(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19)

Let’s return to the problem that surfaced in the last section — the fact that some command names can’t be used as tag functions because they’re already being used for other things. You can work around this by defining your own tag function with a non-conflicting name.

For instance, suppose we want to use map as a tag even though Racket is using it for its own function called map. First, we invent a command name that doesn’t conflict. Let’s call it my-map. As you learned above, Pollen will treat a new command name as a tag function by default:

#lang pollen
my-map{How I would love this to be a map.}

'(my-map "How I would love this to be a map.")

But my-map is not the tag we want. We need to define my-map to be a tag function for map. We can do this with the Pollen helper make-tag-function. That function lives in pollen/tag, so we require that too:

#lang pollen
(require pollen/tag)
(define my-map (make-tag-function 'map))
my-map{How I would love this to be a map.}

'(map "How I would love this to be a map.")

Problem solved.

7.3.1.3 Inserting the value of a variable

A Pollen command name usually refers to a function, but it can also refer to a variable, which is a data value. Once you define the variable, you can insert it into your source by using the ◊ notation without any other arguments:

#lang pollen
(define foo "bar")
The value of foo is foo

The value of foo is bar

Be careful — if you include arguments, even blank ones, Pollen will treat the command name as a function. This won’t work, because a variable is not a function:

To understand what happens here, recall the relationship between Pollen’s command modes. The text-mode command ◊foo[] becomes the Racket-mode command (foo), which after variable substitution becomes ("bar"). If you try to evaluate ("bar") — e.g., in DrRacket — you’ll get the same error.

#lang pollen
(define foo "bar")
The value of foo is foo[]

application: not a procedure;
+    "Fancy Sauce, $1"

Whereas in this version, strong accepts an argument called text, but then ignores it:

#lang pollen
(define (strong text) '(fib "1 1 2 3 5 8 13 ..."))
strong{Fancy Sauce, $1}

'(fib "1 1 2 3 5 8 13 ...")

You can attach any behavior to a command name. As your project evolves, you can also update the behavior of a command name. In that way, Pollen commands become a set of hooks to which you can attach more elaborate processing.

Using Racket functions

You aren’t limited to functions you define. Any function from Racket, or any Racket library, can be invoked directly by using it as a command name. Here’s the function range, which creates a list of numbers:

#lang pollen
range[1 20]

'(range 1 20)

Hold on — that’s not what we want. Where’s the list of numbers? The problem here is that we didn’t explicitly import the racket/list library, which contains the definition for range. (If you need to find out what library contains a certain function, the Racket documentation will tell you.) Without racket/list, Pollen just thinks we’re trying to use range as a tag function (and if we had been, then '(range 1 20) would’ve been the right result).

We fix this by using the require command to bring in the racket/list library, which contains the range we want:

#lang pollen
(require racket/list)
range[1 20]

'(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19)

Of course, you can also invoke Racket functions indirectly, by attaching them to functions you define for command names:

#lang pollen
(require racket/list)
(define (rick start finish) (range start finish))
rick[1 20]

'(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19)

Let’s return to the problem that surfaced in the last section — the fact that some command names can’t be used as tag functions because they’re already being used for other things. You can work around this by defining your own tag function with a non-conflicting name.

For instance, suppose we want to use map as a tag even though Racket is using it for its own function called map. First, we invent a command name that doesn’t conflict. Let’s call it my-map. As you learned above, Pollen will treat a new command name as a tag function by default:

#lang pollen
my-map{How I would love this to be a map.}

'(my-map "How I would love this to be a map.")

But my-map is not the tag we want. We need to define my-map to be a tag function for map. We can do this with the Pollen helper make-tag-function. That function lives in pollen/tag, so we require that too:

#lang pollen
(require pollen/tag)
(define my-map (make-tag-function 'map))
my-map{How I would love this to be a map.}

'(map "How I would love this to be a map.")

Problem solved.

8.3.1.3 Inserting the value of a variable

A Pollen command name usually refers to a function, but it can also refer to a variable, which is a data value. Once you define the variable, you can insert it into your source by using the ◊ notation without any other arguments:

#lang pollen
(define foo "bar")
The value of foo is foo

The value of foo is bar

Be careful — if you include arguments, even blank ones, Pollen will treat the command name as a function. This won’t work, because a variable is not a function:

To understand what happens here, recall the relationship between Pollen’s command modes. The text-mode command ◊foo[] becomes the Racket-mode command (foo), which after variable substitution becomes ("bar"). If you try to evaluate ("bar") — e.g., in DrRacket — you’ll get the same error.

#lang pollen
(define foo "bar")
The value of foo is foo[]

application: not a procedure;
expected a procedure that can be applied to arguments
  given: "bar"
-  arguments...: [none]

The reason we can simply drop ◊foo into the text argument of another Pollen command is that the variable foo holds a string (i.e., a text value). When appropriate, Pollen will convert a variable to a string in a sensible way. For instance, numbers are easily converted:

#lang pollen
(define zam 42)
The value of zam is zam

The value of zam is 42

If the variable holds a container datatype (like a list, hash, or vector), Pollen will produce the Racket text representation of the item. Here, zam is a list of integers:

#lang pollen
(define zam (list 1 2 3))
The value of zam is zam

The value of zam is '(1 2 3)

This feature is included for your convenience as an author. But in general, your readers won’t want to see the Racket representation of a container. So in these cases, you should convert to a string manually in some sensible way. Here, the integers in the list are converted to strings, which are then combined using string-join from the racket/string library:

#lang pollen
(require racket/string)
(define zam (list 1 2 3))
The value of zam is string-join[(map number->string zam)]{ and }

The value of zam is 1 and 2 and 3

Pollen will still produce an error if you try to convert an esoteric value to a string. Here, zam is the addition function (+):

#lang pollen
(define zam +)
The value of zam is zam

Pollen decoder: can’t convert #<procedure:+> to string

One special case to know about. In the examples above, there’s a word space between the variable and the other text. But suppose you need to insert a variable into text so that there’s no space in between. The simple ◊ notation won’t work, because it won’t be clear where the variable name ends and the text begins.

For instance, suppose we want to use a variable edge next to the string px:

#lang pollen
(define edge 100)
p { margin-left: edgepx; }

Pollen decoder: can’t convert #<procedure:...t/pollen/tag.rkt:6:2> to string

The example fails because Pollen reads the whole string after the as the single variable name edgepx. Since edgepx isn’t defined, it’s treated as a tag function, and since Pollen can’t convert a function to a string, we get an error.

In these situations, surround the variable name with vertical bars ◊|like so| to explicitly indicate where the variable name ends. The bars are not treated as part of the name, nor are they included in the result. Once we do that, we get what we intended:

#lang pollen
(define edge 100)
p { margin-left: ◊|edge|px; }

p { margin-left: 100px; }

If you use this notation when you don’t need to, nothing bad will happen. The vertical bars are always ignored.

#lang pollen
(define edge 100)
The value of edge is ◊|edge| pixels}

The value of edge is 100 pixels

7.3.1.4 Inserting a comment

Two options.

To comment out the rest of a single line, use a lozenge followed by a semicolon ◊;.

#lang pollen
span{This is not a comment}
span{Nor is this} ;span{But this is}

'(span "This is not a comment")
-'(span "Nor is this")

To comment out a multiline block, use the lozenge–semicolon signal ◊; with curly braces, ◊;{like so}.

#lang pollen
;{
◊span{This is not a comment}
◊span{Nor is this} ;span{But this is}
}
Actually, it's all a comment now

Actually, it's all a comment now

7.3.2 The Racket arguments

The middle part of a text-mode Pollen command contains the Racket arguments [between square brackets.] Most often, you’ll see these used to pass extra information to commands that operate on text.

For instance, tag functions. Recall from before that any not-yet-defined command name in Pollen is treated as a tag function:

#lang pollen
title{The Beginning of the End}

'(title "The Beginning of the End")

But what if you wanted to add attributes to this tag, so that it comes out like this?

'(title ((class "red")(id "first")) "The Beginning of the End")

You can do it with Racket arguments.

Here’s the hard way. You can type out your list of attributes in Racket format and drop them into the brackets as a single argument:

#lang pollen
title['((class "red")(id "first"))]{The Beginning of the End}

'(title ((class "red") (id "first")) "The Beginning of the End")

But that’s a lot of parentheses to think about. So here’s the easy way. Anytime you use a tag function, there’s a shortcut for inserting attributes. You can enter them as a series of symbol / string pairs between the Racket-argument brackets. The only caveat is that the symbols have to begin with a quote mark ' and end with a colon :. So taken together, they look like this:

#lang pollen
title['class: "red" 'id: "first"]{The Beginning of the End}

'(title ((class "red") (id "first")) "The Beginning of the End")

Racket arguments can be any valid Racket expressions. For instance, this will also work:

#lang pollen
title['class: (format "~a" (* 6 7)) 'id: "first"]{The Beginning of the End}

'(title ((class "42") (id "first")) "The Beginning of the End")

Since Pollen commands are really just Racket arguments underneath, you can use those too. Here, we’ll define a variable called name and use it in the Racket arguments of title:

#lang pollen
(define name "Brennan")
title['class: "red" 'id: name]{The Beginning of the End}

'(title ((class "read") (id "Brennan")) "The Beginning of the End")

You can also use this area for keyword arguments. Keyword arguments can be used to provide options for a particular Pollen command, to avoid redundancy. Suppose that instead of using the h1 ... h6 tags, you want to consolidate them into one command called heading and select the level separately. You can do this with a keyword, in this case #:level, which is passed as a Racket argument:

#lang pollen
(define (heading #:level which text)
   `(,(string->symbol (format "h~a" which)) ,text))
 
heading[#:level 1]{Major league}
heading[#:level 2]{Minor league}
heading[#:level 6]{Trivial league}

'(h1 "Major league")
+  arguments...: [none]

The reason we can simply drop ◊foo into the text argument of another Pollen command is that the variable foo holds a string (i.e., a text value). When appropriate, Pollen will convert a variable to a string in a sensible way. For instance, numbers are easily converted:

#lang pollen
(define zam 42)
The value of zam is zam

The value of zam is 42

If the variable holds a container datatype (like a list, hash, or vector), Pollen will produce the Racket text representation of the item. Here, zam is a list of integers:

#lang pollen
(define zam (list 1 2 3))
The value of zam is zam

The value of zam is '(1 2 3)

This feature is included for your convenience as an author. But in general, your readers won’t want to see the Racket representation of a container. So in these cases, you should convert to a string manually in some sensible way. Here, the integers in the list are converted to strings, which are then combined using string-join from the racket/string library:

#lang pollen
(require racket/string)
(define zam (list 1 2 3))
The value of zam is string-join[(map number->string zam)]{ and }

The value of zam is 1 and 2 and 3

Pollen will still produce an error if you try to convert an esoteric value to a string. Here, zam is the addition function (+):

#lang pollen
(define zam +)
The value of zam is zam

Pollen decoder: can’t convert #<procedure:+> to string

One special case to know about. In the examples above, there’s a word space between the variable and the other text. But suppose you need to insert a variable into text so that there’s no space in between. The simple ◊ notation won’t work, because it won’t be clear where the variable name ends and the text begins.

For instance, suppose we want to use a variable edge next to the string px:

#lang pollen
(define edge 100)
p { margin-left: edgepx; }

Pollen decoder: can’t convert #<procedure:...t/pollen/tag.rkt:6:2> to string

The example fails because Pollen reads the whole string after the as the single variable name edgepx. Since edgepx isn’t defined, it’s treated as a tag function, and since Pollen can’t convert a function to a string, we get an error.

In these situations, surround the variable name with vertical bars ◊|like so| to explicitly indicate where the variable name ends. The bars are not treated as part of the name, nor are they included in the result. Once we do that, we get what we intended:

#lang pollen
(define edge 100)
p { margin-left: ◊|edge|px; }

p { margin-left: 100px; }

If you use this notation when you don’t need to, nothing bad will happen. The vertical bars are always ignored.

#lang pollen
(define edge 100)
The value of edge is ◊|edge| pixels}

The value of edge is 100 pixels

8.3.1.4 Inserting a comment

Two options.

To comment out the rest of a single line, use a lozenge followed by a semicolon ◊;.

#lang pollen
span{This is not a comment}
span{Nor is this} ;span{But this is}

'(span "This is not a comment")
+'(span "Nor is this")

To comment out a multiline block, use the lozenge–semicolon signal ◊; with curly braces, ◊;{like so}.

#lang pollen
;{
◊span{This is not a comment}
◊span{Nor is this} ;span{But this is}
}
Actually, it's all a comment now

Actually, it's all a comment now

8.3.2 The Racket arguments

The middle part of a text-mode Pollen command contains the Racket arguments [between square brackets.] Most often, you’ll see these used to pass extra information to commands that operate on text.

For instance, tag functions. Recall from before that any not-yet-defined command name in Pollen is treated as a tag function:

#lang pollen
title{The Beginning of the End}

'(title "The Beginning of the End")

But what if you wanted to add attributes to this tag, so that it comes out like this?

'(title ((class "red")(id "first")) "The Beginning of the End")

You can do it with Racket arguments.

Here’s the hard way. You can type out your list of attributes in Racket format and drop them into the brackets as a single argument:

#lang pollen
title['((class "red")(id "first"))]{The Beginning of the End}

'(title ((class "red") (id "first")) "The Beginning of the End")

But that’s a lot of parentheses to think about. So here’s the easy way. Anytime you use a tag function, there’s a shortcut for inserting attributes. You can enter them as a series of symbol / string pairs between the Racket-argument brackets. The only caveat is that the symbols have to begin with a quote mark ' and end with a colon :. So taken together, they look like this:

#lang pollen
title['class: "red" 'id: "first"]{The Beginning of the End}

'(title ((class "red") (id "first")) "The Beginning of the End")

Racket arguments can be any valid Racket expressions. For instance, this will also work:

#lang pollen
title['class: (format "~a" (* 6 7)) 'id: "first"]{The Beginning of the End}

'(title ((class "42") (id "first")) "The Beginning of the End")

Since Pollen commands are really just Racket arguments underneath, you can use those too. Here, we’ll define a variable called name and use it in the Racket arguments of title:

#lang pollen
(define name "Brennan")
title['class: "red" 'id: name]{The Beginning of the End}

'(title ((class "read") (id "Brennan")) "The Beginning of the End")

You can also use this area for keyword arguments. Keyword arguments can be used to provide options for a particular Pollen command, to avoid redundancy. Suppose that instead of using the h1 ... h6 tags, you want to consolidate them into one command called heading and select the level separately. You can do this with a keyword, in this case #:level, which is passed as a Racket argument:

#lang pollen
(define (heading #:level which text)
   `(,(string->symbol (format "h~a" which)) ,text))
 
heading[#:level 1]{Major league}
heading[#:level 2]{Minor league}
heading[#:level 6]{Trivial league}

'(h1 "Major league")
'(h2 "Minor league")
-'(h6 "Trivial league")

7.3.3 The text argument

The third part of a text-mode Pollen command is the text argument. The text argument {appears between curly braces}. It can contain any text you want. The text argument can also contain other Pollen commands with their own text arguments. And they can contain other Pollen commands ... and so on, all the way down.

#lang pollen
div{Do it again. div{And again. div{And yet again.}}}

'(div "Do it again. " (div "And again. " (div "And yet again.")))

Three small details to know about the text argument.

First, the only character that needs special handling in a text argument is the lozenge . A lozenge ordinarily marks a new command. So if you want an actual lozenge to appear in the text, you have to escape it by typing ◊"◊".

#lang pollen
definition{This is the lozenge: "◊"}

'(definition "This is the lozenge: ◊")

Second, the whitespace-trimming policy. Here’s the short version: if there’s a carriage return at either end of the text argument, it is trimmed, and whitespace at the end of each line is selectively trimmed in an intelligent way. So this text argument, with carriage returns on the ends:

#lang pollen
div{
Roomy!
 
I agree.
}

'(div "Roomy!" "\n" "\n" "I agree.")

Yields the same result as this one:

#lang pollen
div{Roomy!
 
I agree.}

'(div "Roomy!" "\n" "\n" "I agree.")

For the long version, please see [future link: Spaces, Newlines, and Indentation].

Third, within a multiline text argument, newline characters become individual strings that are not merged with adjacent text. So what you end up with is a list of strings, not a single string. That’s why in the last example, we got this:

'(div "Roomy!" "\n" "\n" "I agree.")

Instead of this:

'(div "Roomy!\n\nI agree.")

Under most circumstances, these two tagged X-expressions will behave the same way. The biggest exception is with functions. A function that operates on multiline text arguments needs to be able to handle an indefinite number of strings. For instance, this jejune function only accepts a single argument. It will work with a single-line text argument, because that produces a single string:

#lang pollen
(define (jejune text)
   `(jejune ,text))
jejune{Irrational confidence}

'(jejune "Irrational confidence")

But watch what happens with a multiline text argument:

#lang pollen
(define (jejune text)
   `(jejune ,text))
jejune{Deeply
        chastened}

jejune: arity mismatch;
+'(h6 "Trivial league")

8.3.3 The text argument

The third part of a text-mode Pollen command is the text argument. The text argument {appears between curly braces}. It can contain any text you want. The text argument can also contain other Pollen commands with their own text arguments. And they can contain other Pollen commands ... and so on, all the way down.

#lang pollen
div{Do it again. div{And again. div{And yet again.}}}

'(div "Do it again. " (div "And again. " (div "And yet again.")))

Three small details to know about the text argument.

First, the only character that needs special handling in a text argument is the lozenge . A lozenge ordinarily marks a new command. So if you want an actual lozenge to appear in the text, you have to escape it by typing ◊"◊".

#lang pollen
definition{This is the lozenge: "◊"}

'(definition "This is the lozenge: ◊")

Second, the whitespace-trimming policy. Here’s the short version: if there’s a carriage return at either end of the text argument, it is trimmed, and whitespace at the end of each line is selectively trimmed in an intelligent way. So this text argument, with carriage returns on the ends:

#lang pollen
div{
Roomy!
 
I agree.
}

'(div "Roomy!" "\n" "\n" "I agree.")

Yields the same result as this one:

#lang pollen
div{Roomy!
 
I agree.}

'(div "Roomy!" "\n" "\n" "I agree.")

For the long version, please see [future link: Spaces, Newlines, and Indentation].

Third, within a multiline text argument, newline characters become individual strings that are not merged with adjacent text. So what you end up with is a list of strings, not a single string. That’s why in the last example, we got this:

'(div "Roomy!" "\n" "\n" "I agree.")

Instead of this:

'(div "Roomy!\n\nI agree.")

Under most circumstances, these two tagged X-expressions will behave the same way. The biggest exception is with functions. A function that operates on multiline text arguments needs to be able to handle an indefinite number of strings. For instance, this jejune function only accepts a single argument. It will work with a single-line text argument, because that produces a single string:

#lang pollen
(define (jejune text)
   `(jejune ,text))
jejune{Irrational confidence}

'(jejune "Irrational confidence")

But watch what happens with a multiline text argument:

#lang pollen
(define (jejune text)
   `(jejune ,text))
jejune{Deeply
        chastened}

jejune: arity mismatch;
the expected number of arguments does not match the given number
  expected: 1
  given: 3
  arguments...:
   "Deeply"
   "\n"
-   "chastened"

The answer is to use a rest argument in the function, which takes the “rest” of the arguments — however many there may be — and combines them into a single list. If we rewrite jejune with a rest argument, we can fix the problem:

#lang pollen
(define (jejune . texts)
   `(jejune ,@texts))
jejune{Deeply
        chastened}

'(jejune "Deeply" "\n" "chastened")

7.4 Further reading

The Pollen language is a variant of Racket’s own text-processing language, called Scribble. So many things that are true about Scribble are also true about Pollen. For the sake of clarity & brevity, I’ve omitted them from this summary. But if you want the full story, see @ Syntax in the Scribble documentation.

 
\ No newline at end of file +   "chastened"

The answer is to use a rest argument in the function, which takes the “rest” of the arguments — however many there may be — and combines them into a single list. If we rewrite jejune with a rest argument, we can fix the problem:

#lang pollen
(define (jejune . texts)
   `(jejune ,@texts))
jejune{Deeply
        chastened}

'(jejune "Deeply" "\n" "chastened")

8.4 Further reading

The Pollen language is a variant of Racket’s own text-processing language, called Scribble. So many things that are true about Scribble are also true about Pollen. For the sake of clarity & brevity, I’ve omitted them from this summary. But if you want the full story, see @ Syntax in the Scribble documentation.

 
\ No newline at end of file diff --git a/doc/result.png b/doc/result.png new file mode 100644 index 0000000000000000000000000000000000000000..929afc57070d2377f9dc1b8578da7db9a1ba338e GIT binary patch literal 22645 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 literal 0 HcmV?d00001 diff --git a/scribblings/file.scrbl b/scribblings/file.scrbl index 72ccb69..1869af1 100644 --- a/scribblings/file.scrbl +++ b/scribblings/file.scrbl @@ -5,7 +5,7 @@ @(define my-eval (make-base-eval)) @(my-eval `(require pollen pollen/file)) -@title{File} +@title[#:tag "file-types"]{File} @defmodule[pollen/file] diff --git a/scribblings/poem.scrbl b/scribblings/poem.scrbl new file mode 100644 index 0000000..46c0c8e --- /dev/null +++ b/scribblings/poem.scrbl @@ -0,0 +1,598 @@ +#lang scribble/manual + +@(require (for-label pollen/world)) + +@title{First tutorial} + +In this tutorial, you'll use Pollen to make a single HTML page with a poem. You'll learn about: + +@itemlist[ + +@item{The relationship of Racket & Pollen} + +@item{DrRacket} + +@item{The project server} + +@item{The preprocessor} + +] + +If you want the shortest possible introduction to Pollen, try the @secref["quick-tour"]. + +@section{Prerequisites} + +I'm going to assume that you've already installed Racket and Pollen. If not, do that now. + +I'm also going to assume you know the basics of using a command line to run programs and navigate the file system using commands like @tt{cd} and @tt{ls}. On Mac OS X, your command-line program is called Terminal; on Windows it's the Windows Command Processor. + +@section{The relationship of Racket & Pollen} + +As I mentioned in the @secref["big-picture"], Pollen is built using Racket, and everything in Pollen ultimately becomes Racket code. If you're comfortable with that idea, you may move along. + +But if not, or if you're just a curious character: + +One of the key features of Racket as a programming language is that it provides tools to create @italic{other} programming languages. These languages might look & behave @link["http://docs.racket-lang.org/ts-guide/index.html"]{like Racket}. Or they @link["http://hashcollision.org/brainfudge/"]{might not}. These languages might serve a general purpose, but more often they're specialized for a particular purpose, in which case they're known as @italic{domain-specific languages}, or @italic{DSLs}. + +@margin-note{Racket exploits the fact that under the hood, all programming languages are basically doing the same thing. (CS jocks know this more formally as a side effect of @link["https://en.wikipedia.org/wiki/Turing_completeness"]{Turing completeness}.) Racket starts with the most general expression of a Turing-complete language — called @link["https://en.wikipedia.org/wiki/Lambda_calculus"]{the lambda calculus} — and lets users build on that. In most programming languages, you can build functions, classes, and modules. But in Racket, you can alter anything about the language.} + +If you find this a strange idea, you're not alone. Most programmers — and until recently, me too — have never made or used DSLs. If you have a programming problem to solve, you start with a general-purpose language like Python or Java or Ruby, and go from there. Nothing wrong with that. + +But programming languages contain their own design choices and compromises. Sometimes the problem at hand is best solved by manipulating the language at a deeper level. When you make a DSL, you're still programming in the underlying language, but doing so at a point of higher leverage. + +Pollen is a DSL implemented in Racket. It is a close cousin of @other-doc['(lib "scribblings/scribble/scribble.scrbl")], another Racket DSL, which was designed for writing Racket documentation. The key feature of Scribble, and thus also of Pollen, is that it's text-based. Meaning, whereas most languages have source files made of code with text embedded within, Pollen's source files are text with code embedded within. + +Moreover, Pollen is meant to be a small step away from Racket — you can think of it as a more convenient notation system for Racket code, similar to how Markdown is a more convenient notation for HTML. But unlike Markdown, which only lets you access a subset of HTML, anything that can be done in Racket can also be done in Pollen. + +As you work more with Pollen, you'll pick up more about how Pollen corresponds to Racket (see @secref["reader"]) and easily be able to convert commands from one system to the other. In later tutorials, you'll see how larger Pollen projects are made out of both Pollen and Racket source files. + +But in smaller projects, like this one, you can just use Pollen. + +@section{Starting a new file in DrRacket} + +DrRacket is the IDE for the Racket programming language, and other languages made with Racket (like Pollen). IDE stands for ``Integrated Development Environment,'' which is a fancy phrase for ``a nice place to edit and run your code.'' DrRacket is installed as part of the core Racket distribution. + +@margin-note{If you've worked with languages like Perl, Python, or Ruby, you may be more familiar with using a general-purpose text editor to edit your code, and then running your program at the command line. You can do that with Racket too. But DrRacket is a considerately designed tool. I recommend it. For these tutorials, I'll assume you're using DrRacket. If you insist on using the command line, I trust you to figure out what you need to do to keep up.} + +Launch DrRacket. Start a new file. The code in the file will look like this: + +@racketmod[racket] + +Within the main window, you should also see an @italic{interactions window}, which shows the output of the current file, and starts out looking something like this (details, like the version number, will vary): + +@verbatim{ +Welcome to DrRacket, version 6.0.1.6--2013-11-26(-/f) [3m]. +Language: racket; memory limit: 1000 MB. +> } + +If you don't see the interactions window, select @menuitem["View" +"Show Interactions"] from the menu. + +@subsection{Setting the @racketfont{#lang} line} + +The first line of every Racket source file, and every Pollen source file, is called the @italic{@racketfont{#lang} line}. The @racketfont{#lang} line identifies the language used to interpret the rest of the file. + +@margin-note{For more about the @racketfont{#lang} line, see @secref[#:doc '(lib "scribblings/guide/guide.scrbl") "hash-lang"].} + +When you start a new Pollen source file in DrRacket, you'll need to change the @racketfont{#lang} line to the Pollen language. The simplest way is to change the first line to this: + +@racketmod[pollen] + +Now run your file by clicking the @onscreen["Run"] button in the upper-right corner, or select @menuitem["Racket" "Run"] from the menu. You'll get something like: + +@verbatim{ +Welcome to DrRacket, version 6.0.1.6--2013-11-26(-/f) [3m]. +Language: pollen; memory limit: 1000 MB. +> +} + +Notice that the language is now reported as @racketfont{pollen}. If you like, change the @racketfont{#lang} line to this: + +@nested[#:style 'code-inset]{@verbatim{ +#lang pollenxyz}} + +Then click @onscreen["Run"] again. DrRacket will print an error: + +@verbatim{@racketerror{Module Language: invalid module text +@(linebreak)standard-module-name-resolver: collection not found ...}} + +Why? Because there's no language called @racketfont{pollenxyz}. Switch it back to @racketfont{pollen} and let's move on. + +@subsection{Putting in the text of the poem} + +Here's a short, bad poem I wrote about CSS. + +@verbatim{ +The margin is 42em. +The border is red. +The padding is 15em. +The border is too. +} + +Paste the text of this poem into your DrRacket editing window, below the @racketfont{#lang} line, so it looks like this: + +@nested[#:style 'code-inset]{@verbatim{ +#lang pollen + +The margin is 42em. +The border is red. +The padding is 15em. +The border is too.}} + +@onscreen["Run"] the file again. In the interactions window, you'll see: + +@racketvalfont{ +The margin is 8em. +@(linebreak)The border is blue. +@(linebreak)The padding is 2em. +@(linebreak)The border is too.} + +This shows you something important: by default, any plain text in a Pollen source file is simply printed as written when you @onscreen["Run"] the file (minus the @racketfont{#lang} line, which is just for Racket's benefit). If you like, edit the text of the poem and click @onscreen["Run"] again. You'll see the updated text printed in the interactions window. + +@subsection{Saving & naming your source file} + +File naming in Pollen is consequential. + +Ultimately, every Pollen source file in your project will be @italic{rendered} into an output file. Each Pollen source file corresponds to one output file. @bold{The name of this output file will be the name of the source file minus the Pollen source extension.} So a source file called @racketfont{file.txt.pp} will become @racketfont{file.txt}. + +Thus, to build the name of a source file, we take the name we want for the output file and add the appropriate Pollen file extension. Different Pollen source files use different extensions — but more about that later. For now, the extension you'll use for your source is @racketfont{.pp}. + +In this case, let's say we want to end up with a file called @racketfont{poem.html}. Therefore, the name of our source file needs to be: + +the output name @racketfont{poem.html} + the source extension @racketfont{.pp} = @racketfont{poem.html.pp} + +(If you want to name the file @racketfont{something-else.html.pp}, be my guest. There's no magic associated with the prefix.) + +@margin-note{You're welcome to change the name of your source files from the desktop. On Mac OS X and Windows, however, the desktop interface often hides file extensions, so check the properties of the file afterward to make sure you got the name you expected.} + +In a convenient location (e.g., your home directory or the desktop) create a new directory for your project called @racketfont{tutorial}. In this new directory, save your DrRacket file as @racketfont{poem.html.pp}. + +@filebox["/path/to/tutorial/poem.html.pp"]{@verbatim{ +#lang pollen + +The margin is 42em. +The border is red. +The padding is 15em. +The border is too.}} + + +@section{Using the project server} + +The project server is a web server built into Pollen. Just as DrRacket lets you run individual files and see if they work as you expect, the project server lets you preview and test your project as a real website. While working on your Pollen project, you may find it convenient to have DrRacket open on half your screen, and on the other half, a web browser pointing at the project server. + +@image["scribblings/project-server.png" #:scale 0.7] + +``Why can't I just open the HTML files directly in my browser?'' If you want to keep making web pages the way we did in 1996, go ahead. But that approach has several shortcomings. First, when you open files directly in your browser, you're cruising the local filesystem, and absolute URLs (the kind that start with a @litchar{/}) won't work. Second, if you want to test your website on devices other than your own machine — well, you can't. Third, you have to render your HTML files in advance, whereas the project server is clever about doing this dynamically. + +So use the project server. + +A note about security. The project server isn't intended for real-world use, but rather as a development tool. That said, once you start the project server, it's an actual web server running on your machine, and it will respond to requests from any computer. If you want to limit traffic to your local network, or certain machines on your local network, it's your job — not mine — to configure your firewall or other network security measures accordingly. + + + +@subsection{Starting the project server with @racketfont{raco pollen}} + +Before we start the project server, a word about the @racketfont{raco pollen} command. + +When you installed Racket, Racket installed a utility program called @racketfont{raco}. This name is short for @bold{Ra}cket @bold{co}mmand, and @racketfont{raco} acts as a hub for — you guessed it — Racket commands. You used it when you first installed Pollen: + +@verbatim{ +> raco pkg install pollen +} + +The first argument after @racketfont{raco} is the subcommand. For instance, @racketfont{raco pkg ...} lets you install, update, and remove packages like so: + +@verbatim{ +> raco pkg update pollen +> raco pkg remove pollen +} + +Likewise, @racketfont{raco pollen} lets you issue commands relevant to Pollen, like starting the project server. (See @secref["raco-pollen"] for a full description of available commands.) + +Now we'll start the project server. Go to your command line and enter the following: + +@verbatim{ +> cd /path/to/tutorial +> raco pollen start} + +@margin-note{Windows users, I'll trust you to convert @racketfont{raco} into the appropriate command for your system — assuming defaults, it's likely to be @racketfont{"C:\Program Files\Racket\raco"} (include the surrounding quotes in the command).} + +After a moment, you'll see a startup message like this: + +@verbatim{ +Welcome to Pollen 0.001 (Racket 6.x.x.x) +Project root is /path/to/tutorial +Project server is http://localhost:8080 (Ctrl-C to exit) +Project dashboard is http://localhost:8080/index.ptree +Ready to rock} + +@italic{Project root} means the directory that the project server was started in, and which it's treating as its root directory. Any absolute URLs (i.e., those beginning with @litchar{/}) will resolve into this directory. So a URL like @racketfont{/styles.css} will impliedly become @racketfont{/path/to/tutorial/styles.css}. + +If you use the bare command @racketfont{raco pollen start}, the project server will start in the current directory. But if you want to start the project server elsewhere, you can add that directory as an argument like this: + +@verbatim{ +> raco pollen start /some/other/path +} + +The next line of the startup message tells you that the web address of the project server is @racketfont{http://localhost:8080}. This is the address you put into your web browser to test your project. If you're unfamiliar with this style of URL, @racketfont{localhost} refers to your own machine, and @racketfont{8080} is the network port where the project server will respond to browser requests. + +If you want to access the project server from a different machine, you can't use @racketfont{localhost}. But you can use the IP address of the machine running the project server (e.g., @racketfont{http://192.168.1.10:8080}) or any name for that machine available through local DNS (e.g., @racketfont{http://mb-laptop:8080}). + +Though port @racketfont{8080} is the default, you can start the project server on any port you like by adding it as an argument to @racketfont{raco pollen start}: + +@verbatim{ +> raco pollen start /path/to/tutorial +> raco pollen start /path/to/tutorial 8088 +} + +@margin-note{You can also change the default port by altering @racket[world:default-port], or parameterizing it with @racket[world:current-server-port].} + +Note that when you pass a port argument, you also have to pass a path argument. If you want the project server to start in the current directory, you can use the usual @litchar{.} shorthand: + +@verbatim{ +> cd /path/to/tutorial +> raco pollen start 8088 +@racketerror{/path/to/tutorial/8088 is not a directory} +> raco pollen start . 8088 +} + +@margin-note{You can run multiple project servers simultaneously. Just start them on different ports so they don't conflict with each other.} + +Your terminal window will report status and error messages from the project server as it runs. Use @onscreen{Ctrl-C} to stop the server. + + +@subsection{Using the dashboard} + +For each directory in your project, starting at the top, the project server displays a @italic{dashboard} in your web browser. The dashboard gives you an overview of the files in the directory, and links to view them. + +The address of the top-level dashboard is @racketfont{http://localhost:8080/index.ptree}. Other dashboards follow the same pattern (e.g., @racketfont{http://localhost:8080/path/to/dir/index.ptree}.) + +Note that the dashboard is @bold{not} at @racketfont{http://localhost:8080/} or its equivalent, @racketfont{http://localhost:8080/index.html}. Why? So it doesn’t interfere with any @racketfont{index.html} that you may want to put in your project. + +Thus, @racketfont{index.ptree}. The @racketfont{.ptree} extension is short for @italic{pagetree}. In Pollen, a pagetree is a hierarchical list of pages. We'll do more with pagetrees in a later tutorial. For now, just be aware that to generate the dashboard, the project server will first look for an actual @racketfont{index.ptree} file in each directory. If it doesn't find one, it will generate a pagetree from a listing of files in the directory. + +Let's look at the root-level dashboard for our project. First, make sure your project server is running: + +@verbatim{ +> cd /path/to/tutorial +> raco pollen start +} + +Then, in your web browser, visit @link["http://localhost:8080/index.ptree"]{@racketfont{http://localhost:8080/index.ptree}}. + +You should see something like this: + +@image["scribblings/dashboard.png" #:scale 1] + +The top line tells us that we're in the root directory of the project. We didn't make an explicit @racketfont{index.ptree} file, so the project server just shows us a directory listing. + + +@subsection{Source files in the dashboard} + +We see the only file, @racketfont{poem.html.pp}. Note that the @racketfont{.pp} extension is grayed out. The dashboard automatically consolidates references to source and output files into a single entry. What this entry says is ``The directory contains a source file in @racketfont{.pp} format for the output file @racketfont{poem.html}.'' + +Every source-file entry in the dashboard has three links. The first link is attached to the filename itself, and takes you to a preview of the output file. If the output file doesn't yet exist — as is the case here — it will be dynamically rendered. (This is true whether you click its name in the dashboard, or link to it from another page.) So click the filename. You'll see in your web browser: + +@nested[#:style 'code-inset]{ +The margin is 42em. The border is red. The padding is 15em. The border is too.} + +Granted, this is a boring web page. The main point here is that you're seeing the @italic{output} from your source file, which didn't exist before. Notice that the address bar says @racketfont{http://localhost:8080/poem.html}, not @racketfont{poem.html.pp}. And if you look in your @racketfont{tutorial} directory, you'll see a new file called @racketfont{poem.html}. + +In other words, when you clicked on the filename link in the dashboard, Pollen rendered the output file from your source file and saved it in your project directory. As promised earlier, the name of the output file (@racketfont{poem.html}) is the name of the source file (@racketfont{poem.html.pp}) minus the Pollen extension (@racketfont{.pp}). + +If you go back to the dashboard and click on the filename link again, you'll see the same output file. If the source file hasn't changed, Pollen will just show you the output file that's already been rendered. + +But if you like, open your @racketfont{poem.html.pp} source file in DrRacket, edit the first line, and save the file: + +@nested[#:style 'code-inset]{@verbatim{ +#lang pollen + +The cave is pitch black. +Look out for the grue. +The padding is 15em. +The border is too.}} + +Go back to the dashboard and click on the filename. This time, you'll see: + +@nested[#:style 'code-inset]{ +The cave is pitch black. Look out for the grue. The padding is 15em. The border is too.} + +Here, Pollen notices that the source file has changed, so it refreshes the output file. This makes it convenient to work between DrRacket and your web browser, editing source and then reloading to see the changes. + +The other two links in the dashboard are labeled @racketfont{in} and @racketfont{out}. + +The link labeled @racketfont{in} will display the contents of the source file: + +@nested[#:style 'code-inset]{@verbatim{ +#lang pollen + +The cave is pitch black. +Look out for the grue. +The padding is 15em. +The border is too.}} + +The link labeled @racketfont{out} will display the contents of the output file (just like the ``view source'' option in your web browser): + +@nested[#:style 'code-inset]{@verbatim{ +The cave is pitch black. +Look out for the grue. +The padding is 15em. +The border is too.}} + +For now, the files are identical except for the @racketfont{#lang} line. But let's change that. + +@section{Working with the preprocessor} + +Pollen can operate in several processing modes. One of these is @italic{preprocessor} mode. A preprocessor is a tool for making systematic, automated changes to a file, often in contemplation of further processing (hence the @italic{pre-}). You can use the Pollen preprocessor this way. Or you can just use it on its own, and leave your files in a finished state. + +That's how we'll use it in this tutorial. We'll build out our @racketfont{poem.html.pp} source file so that it exits the preprocessor as a legit HTML file. + +@subsection{Setting up a preprocessor source file} + +The file extension of a Pollen source file tells Pollen what kind of processing to apply to it. The ``@racketfont{.pp}'' file extension stands for ``Pollen preprocessor.'' You can use the preprocessor with any text-based file by: +@itemlist[ + +@item{inserting @racketfont{#lang pollen} as the first line,} + +@item{adding the @racketfont{.pp} file extension,} + +@item{running it through Pollen.} +] + +@margin-note{For more about the Pollen processing modes and how to invoke them, see @secref["file-types"].} + +``The preprocessor be used with @bold{any} kind of text-based file?'' Right. ``But how?'' The preprocessor reads the source file, handles any Pollen commands it finds, and lets the rest of the content pass through untouched. To the preprocessor, it's all just text data. It doesn't care whether that text represents HTML, CSS, JavaScript, or even @link["https://en.wikipedia.org/wiki/TI-BASIC"]{TI-BASIC}. + +Because the preprocessor only deals in text, the Pollen commands you use in the preprocessor also have to produce text. Moreover, Pollen doesn't enforce the semantics of the underlying file — that's your responsibility. For instance, Pollen won't stop you from doing nonsensical things like this: + +@filebox["bad-poem.html.pp"]{@verbatim{ +#lang pollen + +The cave is pitch black. +Look out for the grue. +◊(insert-mp3-recording-of-scream) + }} + +Here, the result is not going to be valid HTML, because you can't simply drop binary data in the middle of an HTML file. To paraphrase Mr. Babbage — garbage in, garbage out. + +I've encouraged you to mess with the source file, but let's return it to its original state: + +@filebox["/path/to/tutorial/poem.html.pp"]{@verbatim{ +#lang pollen + +The margin is 42em. +The border is red. +The padding is 15em. +The border is too.}} + +This file has @racketfont{#lang pollen} as the first line, and @racketfont{.pp} as the file extension, so it meets the minimum requirements for the preprocessor. + +@subsection{Creating valid HTML output} + +Let's update our source so it produces valid HTML. Edit the source as follows: + +@filebox["/path/to/tutorial/poem.html.pp"]{@verbatim{ +#lang pollen + + + +
+The margin is 42em.
+The border is red.
+The padding is 15em.
+The border is too.
+
+ +}} + +Return to the project server and view @link["http://localhost:8080/poem.html" "http://localhost:8080/poem.html"]. Earlier, the output looked like this: + +@nested[#:style 'code-inset]{ +The margin is 42em. The border is red. The padding is 15em. The border is too.} + + +But now, because of the @racketfont{
} tag, the poem will appear in a monospaced font, and the line breaks will be preserved:
+
+@nested[#:style 'code-inset]{
+@tt{The margin is 42em.
+@(linebreak)The border is red.
+@(linebreak)The padding is 15em.
+@(linebreak)The border is too.}}
+
+As before, because the source has changed, Pollen refreshes the output file. From the dashboard, you can use the @racketfont{in} and @racketfont{out} links to inspect the source and output. 
+
+This is now a valid HTML page.
+
+@subsection{Adding commands}
+
+I mentioned that the preprocessor reads the file and handles any Pollen commands it finds. But our source file doesn't have any commands yet. Let's add some.
+
+Pollen commands can be embedded in your source file using one of two modes: @italic{Racket mode} or @italic{text mode}. We'll try text mode in a later tutorial. For now, we'll use Racket mode.
+
+To make a Racket-mode Pollen command, just take any Racket expression and put the lozenge character (@litchar["◊"]) in front of it. For instance, these are valid Racket expressions:
+
+@nested[#:style 'code-inset]{@verbatim{
+    (define inner 2)
+    (define edge (* inner 4))
+    (define color "blue")
+}}
+
+And these are the equivalent commands in Pollen:
+
+@nested[#:style 'code-inset]{@verbatim{
+    ◊(define inner 2)
+    ◊(define edge (* inner 4))
+    ◊(define color "blue")
+}}
+
+@subsection{Racket basics (if you're not familiar)}
+
+
+``But how am I supposed to know Racket?'' You don't. So we'll start now. Here are the five basic rules of Racket:
+
+@itemlist[#:style 'ordered
+
+@item{The core building block of Racket is the @italic{expression}. An expression can be a value (like @racket[2] or @racket{blue}), a variable (like @racketfont{edge}), or a function call (like @racket[(* inner 4)]).}
+
+@item{Every expression is @italic{evaluated} to produce a value.}
+
+@item{A variable evaluates to whatever value it holds (so @racketfont{inner} would become @racket[2]). A function call evaluates to its return value (so @racket[(+ 1 1)] would become @racket[2]).}
+
+@item{Function calls go between parentheses. Unlike most languages, the function name comes @italic{first}, followed by its arguments (so it's @racket[(* inner 4)], not @racket[(inner * 4)]). This is called @italic{prefix notation}.}
+
+@item{Expressions can contain recursively nested expressions. Thus, @racket[(* inner 4)] could be written @racket[(* inner (+ 2 2))] or @racket[(* inner (+ (+ 1 1) (+ 1 1)))].}
+
+]
+
+@margin-note{Newcomers to Racket often gripe about prefix notation and the parentheses. If you need to get it out of your system, go ahead. Keep in mind, however, that it's not some peculiar affectation, but rather a necessary consequence of rule #1. As you'll come to learn, rule #1 is where the magic happens.}
+
+That should tell you enough to infer what's going on in the Pollen commands above:
+
+@nested[#:style 'code-inset]{@verbatim{
+    ◊(define inner 2)
+    ◊; create a variable 'inner' that holds the value 2
+    ◊(define edge (* inner 4))
+    ◊; create a variable 'edge' that's four times the value of 'inner'
+    ◊(define color "blue")
+    ◊; create a variable 'color' that holds the value "blue"
+}}
+
+To learn more about Racket syntax, consider a detour through the excellent @other-doc['(lib "scribblings/quick/quick.scrbl")].
+
+
+@subsection{Defining variables with commands}
+
+Let's use commands to define variables that will hold some values for our page. First, add a @racketfont{} tag to your source file, and three commmands to define three variables:
+
+@filebox["/path/to/tutorial/poem.html.pp"]{@verbatim{
+#lang pollen
+
+
+
+◊(define inner 2)
+◊(define edge (* inner 4))
+◊(define color "blue")
+
+
+
+The margin is 42em.
+The border is red.
+The padding is 15em.
+The border is too.
+
+ +}} + +Then look at @link["http://localhost:8080/poem.html" "http://localhost:8080/poem.html"] again. Does it look the same? Not a trick question — it should. If you click the @onscreen{Out} link on the dashboard, you'll see this: + +@nested[#:style 'code-inset]{@verbatim{ + + + + + + + + +
+The margin is 42em.
+The border is red.
+The padding is 15em.
+The border is too.
+
+ +}} + +What's happening here? Our @racketfont{◊(define ...)} commands just define variables, so they don't evaluate to any value. Instead, we get blank lines. So far, so good. + +@subsection{Inserting values from variables} + +To insert the value of a variable in our file, we use the command @litchar{◊|}@italic{variable-name}@litchar{|}. Let's do that now: + +@filebox["/path/to/tutorial/poem.html.pp"]{@verbatim{ +#lang pollen + + + +◊(define inner 2) +◊(define edge (* inner 4)) +◊(define color "blue") + + +
+The margin is ◊|edge|em.
+The border is ◊|color|.
+The padding is ◊|inner|em.
+The border is too.
+
+ +}} + +Here, we're replacing three values in the poem with the variables containing those values — @racketfont{◊|edge|}, @racketfont{◊|color|}, and @racketfont{◊|inner|}. @link["http://localhost:8080/poem.html"]{Reload the file} in the project server, and you'll see: + +@nested[#:style 'code-inset]{@verbatim{ +The margin is 8em. +The border is blue. +The padding is 2em. +The border is too.}} + +Hey, look at that — the text of the poem changed. Now it even rhymes. + +If you like, in the source file, edit the variable definitions with different values and reload the page in the project server. The page will be rendered afresh with the new values. In particular, if you update @racketfont{inner}, you'll also see @racketfont{edge} change, since its value depends on @racketfont{inner}. + +@subsection{Inserting variables within CSS} + +Our poem makes claims about the @racketfont{margin}, @racketfont{border}, and @racketfont{padding} of the page that aren't yet true. To fix this, we'll rely on the same basic technique of inserting variables into our HTML file. But instead of putting them in the @racketfont{} of the page, we'll put them in a CSS @racketfont{ + + +
+The margin is ◊|edge|em.
+The border is ◊|color|.
+The padding is ◊|inner|em.
+The border is too.
+
+ +}} + +Notice that we're using the same @litchar{◊|}@italic{variable-name}@litchar{|} pattern as before to insert the variable values. + +What do we expect to see? We expect that the @racketfont{padding} and @racketfont{border} will be 2em wide, because @racketfont{inner} is 2. We expect the @racketfont{margin} to be 8em, because it's equal to @racketfont{edge}, which is @racketfont{inner} multiplied by 4. And we expect the color of the border to be @racket["blue"], because that's the value of the variable @racketfont{color}. + +And indeed, when you @link["http://localhost:8080/poem.html"]{reload the file} in the project server, you'll see exactly that: + +@image["scribblings/result.png" #:scale 0.7] + + +As before, if you edit the values of the variables in the source file and reload in the project server, you'll see both the text and the layout change. + + +@section{First tutorial complete} + +This was a sneaky tutorial. The HTML page we made was very simple, but in building it, we covered many important points about how Pollen works. + +Feel free to go back and experiment with what you've learned. The next tutorial will assume that you're comfortable with all the material here. + + + + + + diff --git a/scribblings/pollen.scrbl b/scribblings/pollen.scrbl index a5d111e..50c6072 100644 --- a/scribblings/pollen.scrbl +++ b/scribblings/pollen.scrbl @@ -47,6 +47,8 @@ Or, if you can find a better digital-publishing tool, use that. But I'm never go @include-section["big-picture.scrbl"] +@include-section["poem.scrbl"] + @include-section["raco.scrbl"] @include-section["formats.scrbl"] diff --git a/scribblings/project-server.png b/scribblings/project-server.png new file mode 100644 index 0000000000000000000000000000000000000000..19131b1c13101a1dedc3c01b65448e0999c0bd06 GIT binary patch literal 273017 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 c#;0pATeZ&O*Z*0EtR>rzw-MrTf(NCw?~2Q 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

Introduction

This tutorial provides a brief introduction to the Racket programming language by using one of its picture-drawing libraries. Even if you don’t intend to use Racket for your artistic endeavours, the picture library supports interesting and enlightening examples. After all, a picture is worth five hundred "hello world"s.

Along the same lines, we assume that you will run the examples using DrRacket. Using DrRacket is the fastest way to get a sense of what the language and system feels like, even if you eventually use Racket with Emacs, vi, or some other editor.

Ready…

Download Racket, install, and then start DrRacket.

Set…

See the DrRacket documentation for a brief overview of the DrRacket IDE.

To draw pictures, we must first load some picture functions, which are part of a library for creating slide presentations. Copy the following into the definitions area, which is the top text area that you see in DrRacket:

#lang slideshow

Then click the Run button. You’ll see the text caret move to the bottom text area, which is the interactions area.

If you’ve used DrRacket before, you might need to reset DrRacket to use the language declared in the source via the Language|Choose Language… menu item before clicking Run.

Go!

When you type an expression after the > in the interactions window and hit Enter, DrRacket evaluates the expression and prints its result. An expression can be just a value, such as the number 5 or the string “art gallery”:

> 5
+5
+> "art gallery"
+"art gallery"

An expression can also be a function call. To call a function, put an open parenthesis before the function name, then expressions for the function arguments, and then a close parenthesis.

+ + \ No newline at end of file diff --git a/tutorial/index.html.pmd b/tutorial/index.html.pmd new file mode 100644 index 0000000..2014549 --- /dev/null +++ b/tutorial/index.html.pmd @@ -0,0 +1,41 @@ +#lang pollen + +![](space.jpg) + +Introduction +============ + +This tutorial provides a brief introduction to the Racket programming language by using one of its picture-drawing libraries. Even if you don’t intend to use Racket for your artistic endeavours, the picture library supports interesting and enlightening examples. After all, a picture is worth five hundred "hello world"s. + +Along the same lines, we assume that you will run the examples using [DrRacket](http://racket-lang.org/). Using DrRacket is the fastest way to get a sense of what the language and system feels like, even if you eventually use Racket with Emacs, vi, or some other editor. + +## Ready... + +[Download Racket](http://racket-lang.org/), install, and then start DrRacket. + +## Set... + +> See [the DrRacket documentation](file:///Users/MB/git/racket/racket/doc/drracket/interface-essentials.html) for a brief overview of the DrRacket IDE. + +To draw pictures, we must first load some picture functions, which are part of a library for creating slide presentations. Copy the following into the *definitions area*, which is the top text area that you see in DrRacket: + +``` +#lang slideshow +``` + +Then click the Run button. You’ll see the text caret move to the bottom text area, which is the *interactions area*. + +If you’ve used DrRacket before, you might need to reset DrRacket to use the language declared in the source via the **Language|Choose Language...** menu item before clicking **Run**. + +## Go! + +When you type an expression after the > in the interactions window and hit Enter, DrRacket evaluates the expression and prints its result. An expression can be just a value, such as the number 5 or the string "art gallery": + +``` +> 5 +5 +> "art gallery" +"art gallery" +``` + +An expression can also be a function call. To call a function, put an open parenthesis before the function name, then expressions for the function arguments, and then a close parenthesis. \ No newline at end of file diff --git a/tutorial/play/act 1.pmd b/tutorial/play/act 1.pmd new file mode 100644 index 0000000..34a485a --- /dev/null +++ b/tutorial/play/act 1.pmd @@ -0,0 +1,199 @@ +#lang pollen + +Morning-room in Algernon’s flat in Half-Moon Street. The room is luxuriously and artistically furnished. The sound of a piano is heard in the adjoining room. + +[**Lane** is arranging afternoon tea on the table, and after the music has ceased, **Algernon** enters.] + +**Algernon.** Did you hear what I was playing, Lane? + +**Lane.** I didn’t think it polite to listen, sir. + +**Algernon.** I’m sorry for that, for your sake. I don’t play accurately—any one can play accurately—but I play with wonderful expression. As far as the piano is concerned, sentiment is my forte. I keep science for Life. + +**Lane.** Yes, sir. + +**Algernon.** And, speaking of the science of Life, have you got the cucumber sandwiches cut for Lady Bracknell? + +**Lane.** Yes, sir. [Hands them on a salver.] + +**Algernon.** [Inspects them, takes two, and sits down on the sofa.] Oh! . . . by the way, Lane, I see from your book that on Thursday night, when Lord Shoreman and Mr. Worthing were dining with me, eight bottles of champagne are entered as having been consumed. + +**Lane.** Yes, sir; eight bottles and a pint. + +**Algernon.** Why is it that at a bachelor’s establishment the servants invariably drink the champagne? I ask merely for information. + +**Lane.** I attribute it to the superior quality of the wine, sir. I have often observed that in married households the champagne is rarely of a first-rate brand. + +**Algernon.** Good heavens! Is marriage so demoralising as that? + +**Lane.** I believe it _is_ a very pleasant state, sir. I have had very little experience of it myself up to the present. I have only been married once. That was in consequence of a misunderstanding between myself and a young person. + +**Algernon.** [Languidly.] I don’t know that I am much interested in your family life, Lane. + +**Lane.** No, sir; it is not a very interesting subject. I never think of it myself. + +**Algernon.** Very natural, I am sure. That will do, Lane, thank you. + +**Lane.** Thank you, sir. [**Lane** goes out.] + +**Algernon.** Lane's views on marriage seem somewhat lax. Really, if the lower orders don’t set us a good example, what on earth is the use of them? They seem, as a class, to have absolutely no sense of moral responsibility. + +[Enter **Lane**.] + +**Lane.** Mr. Ernest Worthing. + +[Enter **Jack**.] + +[**Lane** goes out.] + +**Algernon.** How are you, my dear Ernest? What brings you up to town? + +**Jack.** Oh, pleasure, pleasure! What else should bring one anywhere? Eating as usual, I see, Algy! + +**Algernon.** [Stiffly.] I believe it is customary in good society to take some slight refreshment at five o’clock. Where have you been since last Thursday? + +**Jack.** [Sitting down on the sofa.] In the country. + +**Algernon.** What on earth do you do there? + +**Jack.** [Pulling off his gloves.] When one is in town one amuses oneself. When one is in the country one amuses other people. It is excessively boring. + +**Algernon.** And who are the people you amuse? + +**Jack.** [Airily.] Oh, neighbours, neighbours. + +**Algernon.** Got nice neighbours in your part of Shropshire? + +**Jack.** Perfectly horrid! Never speak to one of them. + +**Algernon.** How immensely you must amuse them! [Goes over and takes sandwich.] By the way, Shropshire is your county, is it not? + +**Jack.** Eh? Shropshire? Yes, of course. Hallo! Why all these cups? Why cucumber sandwiches? Why such reckless extravagance in one so young? Who is coming to tea? + +**Algernon.** Oh! merely Aunt Augusta and Gwendolen. + +**Jack.** How perfectly delightful! + +**Algernon.** Yes, that is all very well; but I am afraid Aunt Augusta won’t quite approve of your being here. + +**Jack.** May I ask why? + +**Algernon.** My dear fellow, the way you flirt with Gwendolen is perfectly disgraceful. It is almost as bad as the way Gwendolen flirts with you. + +**Jack.** I am in love with Gwendolen. I have come up to town expressly to propose to her. + +**Algernon.** I thought you had come up for pleasure? . . . I call that business. + +**Jack.** How utterly unromantic you are! + +**Algernon.** I really don’t see anything romantic in proposing. It is very romantic to be in love. But there is nothing romantic about a definite proposal. Why, one may be accepted. One usually is, I believe. Then the excitement is all over. The very essence of romance is uncertainty. If ever I get married, I’ll certainly try to forget the fact. + +**Jack.** I have no doubt about that, dear Algy. The Divorce Court was specially invented for people whose memories are so curiously constituted. + +**Algernon.** Oh! there is no use speculating on that subject. Divorces are made in Heaven—[**Jack** puts out his hand to take a sandwich. **Algernon** at once interferes.] Please don’t touch the cucumber sandwiches. They are ordered specially for Aunt Augusta. [Takes one and eats it.] + +**Jack.** Well, you have been eating them all the time. + +**Algernon.** That is quite a different matter. She is my aunt. [Takes plate from below.] Have some bread and butter. The bread and butter is for Gwendolen. Gwendolen is devoted to bread and butter. + +**Jack.** [Advancing to table and helping himself.] And very good bread and butter it is too. + +**Algernon.** Well, my dear fellow, you need not eat as if you were going to eat it all. You behave as if you were married to her already. You are not married to her already, and I don’t think you ever will be. + +**Jack.** Why on earth do you say that? + +**Algernon.** Well, in the first place girls never marry the men they flirt with. Girls don’t think it right. + +**Jack.** Oh, that is nonsense! + +**Algernon.** It isn’t. It is a great truth. It accounts for the extraordinary number of bachelors that one sees all over the place. In the second place, I don’t give my consent. + +**Jack.** Your consent! + +**Algernon.** My dear fellow, Gwendolen is my first cousin. And before I allow you to marry her, you will have to clear up the whole question of Cecily. [Rings bell.] + +**Jack.** Cecily! What on earth do you mean? What do you mean, Algy, by Cecily! I don’t know any one of the name of Cecily. + +[Enter **Lane**.] + +**Algernon.** Bring me that cigarette case Mr. Worthing left in the smoking-room the last time he dined here. + +**Lane.** Yes, sir. [**Lane** goes out.] + +**Jack.** Do you mean to say you have had my cigarette case all this time? I wish to goodness you had let me know. I have been writing frantic letters to Scotland Yard about it. I was very nearly offering a large reward. + +**Algernon.** Well, I wish you would offer one. I happen to be more than usually hard up. + +**Jack.** There is no good offering a large reward now that the thing is found. + +[Enter **Lane** with the cigarette case on a salver. **Algernon** takes it at once. **Lane** goes out.] + +**Algernon.** I think that is rather mean of you, Ernest, I must say. [Opens case and examines it.] However, it makes no matter, for, now that I look at the inscription inside, I find that the thing isn’t yours after all. + +**Jack.** Of course it’s mine. [Moving to him.] You have seen me with it a hundred times, and you have no right whatsoever to read what is written inside. It is a very ungentlemanly thing to read a private cigarette case. + +**Algernon.** Oh! it is absurd to have a hard and fast rule about what one should read and what one shouldn’t. More than half of modern culture depends on what one shouldn’t read. + +**Jack.** I am quite aware of the fact, and I don’t propose to discuss modern culture. It isn’t the sort of thing one should talk of in private. I simply want my cigarette case back. + +**Algernon.** Yes; but this isn’t your cigarette case. This cigarette case is a present from some one of the name of Cecily, and you said you didn’t know any one of that name. + +**Jack.** Well, if you want to know, Cecily happens to be my aunt. + +**Algernon.** Your aunt! + +**Jack.** Yes. Charming old lady she is, too. Lives at Tunbridge Wells. Just give it back to me, Algy. + +**Algernon.** [Retreating to back of sofa.] But why does she call herself little Cecily if she is your aunt and lives at Tunbridge Wells? [Reading.] ‘From little Cecily with her fondest love.’ + +**Jack.** [Moving to sofa and kneeling upon it.] My dear fellow, what on earth is there in that? Some aunts are tall, some aunts are not tall. That is a matter that surely an aunt may be allowed to decide for herself. You seem to think that every aunt should be exactly like your aunt! That is absurd! For Heaven’s sake give me back my cigarette case. [Follows **Algernon** round the room.] + +**Algernon.** Yes. But why does your aunt call you her uncle? ‘From little Cecily, with her fondest love to her dear Uncle Jack.’ There is no objection, I admit, to an aunt being a small aunt, but why an aunt, no matter what her size may be, should call her own nephew her uncle, I can’t quite make out. Besides, your name isn’t Jack at all; it is Ernest. + +**Jack.** It isn’t Ernest; it’s Jack. + +**Algernon.** You have always told me it was Ernest. I have introduced you to every one as Ernest. You answer to the name of Ernest. You look as if your name was Ernest. You are the most earnest-looking person I ever saw in my life. It is perfectly absurd your saying that your name isn’t Ernest. It’s on your cards. Here is one of them. [Taking it from case.] ‘Mr. Ernest Worthing, B. 4, The Albany.’ I’ll keep this as a proof that your name is Ernest if ever you attempt to deny it to me, or to Gwendolen, or to any one else. [Puts the card in his pocket.] + +**Jack.** Well, my name is Ernest in town and Jack in the country, and the cigarette case was given to me in the country. + +**Algernon.** Yes, but that does not account for the fact that your small Aunt Cecily, who lives at Tunbridge Wells, calls you her dear uncle. Come, old boy, you had much better have the thing out at once. + +**Jack.** My dear Algy, you talk exactly as if you were a dentist. It is very vulgar to talk like a dentist when one isn’t a dentist. It produces a false impression, + +**Algernon.** Well, that is exactly what dentists always do. Now, go on! Tell me the whole thing. I may mention that I have always suspected you of being a confirmed and secret Bunburyist; and I am quite sure of it now. + +**Jack.** Bunburyist? What on earth do you mean by a Bunburyist? + +**Algernon.** I’ll reveal to you the meaning of that incomparable expression as soon as you are kind enough to inform me why you are Ernest in town and Jack in the country. + +**Jack.** Well, produce my cigarette case first. + +**Algernon.** Here it is. [Hands cigarette case.] Now produce your explanation, and pray make it improbable. [Sits on sofa.] + +**Jack.** My dear fellow, there is nothing improbable about my explanation at all. In fact it’s perfectly ordinary. Old Mr. Thomas Cardew, who adopted me when I was a little boy, made me in his will guardian to his grand-daughter, Miss Cecily Cardew. Cecily, who addresses me as her uncle from motives of respect that you could not possibly appreciate, lives at my place in the country under the charge of her admirable governess, Miss Prism. + +**Algernon.** Where is that place in the country, by the way? + +**Jack.** That is nothing to you, dear boy. You are not going to be invited . . . I may tell you candidly that the place is not in Shropshire. + +**Algernon.** I suspected that, my dear fellow! I have Bunburyed all over Shropshire on two separate occasions. Now, go on. Why are you Ernest in town and Jack in the country? + +**Jack.** My dear Algy, I don’t know whether you will be able to understand my real motives. You are hardly serious enough. When one is placed in the position of guardian, one has to adopt a very high moral tone on all subjects. It’s one’s duty to do so. And as a high moral tone can hardly be said to conduce very much to either one’s health or one’s happiness, in order to get up to town I have always pretended to have a younger brother of the name of Ernest, who lives in the Albany, and gets into the most dreadful scrapes. That, my dear Algy, is the whole truth pure and simple. + +**Algernon.** The truth is rarely pure and never simple. Modern life would be very tedious if it were either, and modern literature a complete impossibility! + +**Jack.** That wouldn’t be at all a bad thing. + +**Algernon.** Literary criticism is not your forte, my dear fellow. Don’t try it. You should leave that to people who haven’t been at a University. They do it so well in the daily papers. What you really are is a Bunburyist. I was quite right in saying you were a Bunburyist. You are one of the most advanced Bunburyists I know. + +**Jack.** What on earth do you mean? + +**Algernon.** You have invented a very useful younger brother called Ernest, in order that you may be able to come up to town as often as you like. I have invented an invaluable permanent invalid called Bunbury, in order that I may be able to go down into the country whenever I choose. Bunbury is perfectly invaluable. If it wasn’t for Bunbury’s extraordinary bad health, for instance, I wouldn’t be able to dine with you at Willis’s to-night, for I have been really engaged to Aunt Augusta for more than a week. + +**Jack.** I haven’t asked you to dine with me anywhere to-night. + +**Algernon.** I know. You are absurdly careless about sending out invitations. It is very foolish of you. Nothing annoys people so much as not receiving invitations. + +**Jack.** You had much better dine with your Aunt Augusta. + +**Algernon.** I haven’t the smallest intention of doing anything of the kind. To begin with, I dined there on Monday, and once a week is quite enough to dine with one’s own relations. In the second place, whenever I do dine there I am always treated as a member of the family, and sent down with either no woman at all, or two. In the third place, I know perfectly well whom she will place me next to, to-night. She will place me next Mary Farquhar, who always flirts with her own husband across the dinner-table. That is not very pleasant. Indeed, it is not even decent . . . and that sort of thing is enormously on the increase. The amount of women in London who flirt with their own husbands is perfectly scandalous. It looks so bad. It is simply washing one’s clean linen in public. Besides, now that I know you to be a confirmed Bunburyist I naturally want to talk to you about Bunburying. I want to tell you the rules. \ No newline at end of file diff --git a/tutorial/play/act 2.pmd b/tutorial/play/act 2.pmd new file mode 100644 index 0000000..a3bc9a3 --- /dev/null +++ b/tutorial/play/act 2.pmd @@ -0,0 +1,249 @@ +#lang pollen + +Garden at the Manor House. A flight of grey stone steps leads up to the house. The garden, an old-fashioned one, full of roses. Time of year, July. Basket chairs, and a table covered with books, are set under a large yew-tree. + +[**Miss Prism** discovered seated at the table. **Cecily** is at the back watering flowers.] + +**Miss Prism.** [Calling.] Cecily, Cecily! Surely such a utilitarian occupation as the watering of flowers is rather Moulton’s duty than yours? Especially at a moment when intellectual pleasures await you. Your German grammar is on the table. Pray open it at page fifteen. We will repeat yesterday’s lesson. + +**Cecily.** [Coming over very slowly.] But I don’t like German. It isn’t at all a becoming language. I know perfectly well that I look quite plain after my German lesson. + +**Miss Prism.** Child, you know how anxious your guardian is that you should improve yourself in every way. He laid particular stress on your German, as he was leaving for town yesterday. Indeed, he always lays stress on your German when he is leaving for town. + +**Cecily.** Dear Uncle Jack is so very serious! Sometimes he is so serious that I think he cannot be quite well. + +**Miss Prism.** [Drawing herself up.] Your guardian enjoys the best of health, and his gravity of demeanour is especially to be commended in one so comparatively young as he is. I know no one who has a higher sense of duty and responsibility. + +**Cecily.** I suppose that is why he often looks a little bored when we three are together. + +**Miss Prism.** Cecily! I am surprised at you. Mr. Worthing has many troubles in his life. Idle merriment and triviality would be out of place in his conversation. You must remember his constant anxiety about that unfortunate young man his brother. + +**Cecily.** I wish Uncle Jack would allow that unfortunate young man, his brother, to come down here sometimes. We might have a good influence over him, Miss Prism. I am sure you certainly would. You know German, and geology, and things of that kind influence a man very much. [**Cecily** begins to write in her diary.] + +**Miss Prism.** [Shaking her head.] I do not think that even I could produce any effect on a character that according to his own brother’s admission is irretrievably weak and vacillating. Indeed I am not sure that I would desire to reclaim him. I am not in favour of this modern mania for turning bad people into good people at a moment’s notice. As a man sows so let him reap. You must put away your diary, Cecily. I really don’t see why you should keep a diary at all. + +**Cecily.** I keep a diary in order to enter the wonderful secrets of my life. If I didn’t write them down, I should probably forget all about them. + +**Miss Prism.** Memory, my dear Cecily, is the diary that we all carry about with us. + +**Cecily.** Yes, but it usually chronicles the things that have never happened, and couldn’t possibly have happened. I believe that Memory is responsible for nearly all the three-volume novels that Mudie sends us. + +**Miss Prism.** Do not speak slightingly of the three-volume novel, Cecily. I wrote one myself in earlier days. + +**Cecily.** Did you really, Miss Prism? How wonderfully clever you are! I hope it did not end happily? I don’t like novels that end happily. They depress me so much. + +**Miss Prism.** The good ended happily, and the bad unhappily. That is what Fiction means. + +**Cecily.** I suppose so. But it seems very unfair. And was your novel ever published? + +**Miss Prism.** Alas! no. The manuscript unfortunately was abandoned. [**Cecily** starts.] I use the word in the sense of lost or mislaid. To your work, child, these speculations are profitless. + +**Cecily.** [Smiling.] But I see dear Dr. Chasuble coming up through the garden. + +**Miss Prism.** [Rising and advancing.] Dr. Chasuble! This is indeed a pleasure. + +[Enter **Canon Chasuble**.] + +**Chasuble.** And how are we this morning? Miss Prism, you are, I trust, well? + +**Cecily.** Miss Prism has just been complaining of a slight headache. I think it would do her so much good to have a short stroll with you in the Park, Dr. Chasuble. + +**Miss Prism.** Cecily, I have not mentioned anything about a headache. + +**Cecily.** No, dear Miss Prism, I know that, but I felt instinctively that you had a headache. Indeed I was thinking about that, and not about my German lesson, when the Rector came in. + +**Chasuble.** I hope, Cecily, you are not inattentive. + +**Cecily.** Oh, I am afraid I am. + +**Chasuble.** That is strange. Were I fortunate enough to be Miss Prism’s pupil, I would hang upon her lips. [**Miss Prism** glares.] I spoke metaphorically.—My metaphor was drawn from bees. Ahem! Mr. Worthing, I suppose, has not returned from town yet? + +**Miss Prism.** We do not expect him till Monday afternoon. + +**Chasuble.** Ah yes, he usually likes to spend his Sunday in London. He is not one of those whose sole aim is enjoyment, as, by all accounts, that unfortunate young man his brother seems to be. But I must not disturb Egeria and her pupil any longer. + +**Miss Prism.** Egeria? My name is Lætitia, Doctor. + +**Chasuble.** [Bowing.] A classical allusion merely, drawn from the Pagan authors. I shall see you both no doubt at Evensong? + +**Miss Prism.** I think, dear Doctor, I will have a stroll with you. I find I have a headache after all, and a walk might do it good. + +**Chasuble.** With pleasure, Miss Prism, with pleasure. We might go as far as the schools and back. + +**Miss Prism.** That would be delightful. Cecily, you will read your Political Economy in my absence. The chapter on the Fall of the Rupee you may omit. It is somewhat too sensational. Even these metallic problems have their melodramatic side. + +[Goes down the garden with **Dr. Chasuble**.] + +**Cecily.** [Picks up books and throws them back on table.] Horrid Political Economy! Horrid Geography! Horrid, horrid German! + +[Enter **Merriman** with a card on a salver.] + +**Merriman**. Mr. Ernest Worthing has just driven over from the station. He has brought his luggage with him. + +**Cecily.** [Takes the card and reads it.] ‘Mr. Ernest Worthing, B. 4, The Albany, W.’ Uncle Jack’s brother! Did you tell him Mr. Worthing was in town? + +**Merriman**. Yes, Miss. He seemed very much disappointed. I mentioned that you and Miss Prism were in the garden. He said he was anxious to speak to you privately for a moment. + +**Cecily.** Ask Mr. Ernest Worthing to come here. I suppose you had better talk to the housekeeper about a room for him. + +**Merriman**. Yes, Miss. + +[**Merriman** goes off.] + +**Cecily.** I have never met any really wicked person before. I feel rather frightened. I am so afraid he will look just like every one else. + +[Enter **Algernon**, very gay and debonnair.] He does! + +**Algernon.** [Raising his hat.] You are my little cousin Cecily, I’m sure. + +**Cecily.** You are under some strange mistake. I am not little. In fact, I believe I am more than usually tall for my age. [**Algernon** is rather taken aback.] But I am your cousin Cecily. You, I see from your card, are Uncle Jack’s brother, my cousin Ernest, my wicked cousin Ernest. + +**Algernon.** Oh! I am not really wicked at all, cousin Cecily. You mustn’t think that I am wicked. + +**Cecily.** If you are not, then you have certainly been deceiving us all in a very inexcusable manner. I hope you have not been leading a double life, pretending to be wicked and being really good all the time. That would be hypocrisy. + +**Algernon.** [Looks at her in amazement.] Oh! Of course I have been rather reckless. + +**Cecily.** I am glad to hear it. + +**Algernon.** In fact, now you mention the subject, I have been very bad in my own small way. + +**Cecily.** I don’t think you should be so proud of that, though I am sure it must have been very pleasant. + +**Algernon.** It is much pleasanter being here with you. + +**Cecily.** I can’t understand how you are here at all. Uncle Jack won’t be back till Monday afternoon. + +**Algernon.** That is a great disappointment. I am obliged to go up by the first train on Monday morning. I have a business appointment that I am anxious . . . to miss? + +**Cecily.** Couldn’t you miss it anywhere but in London? + +**Algernon.** No: the appointment is in London. + +**Cecily.** Well, I know, of course, how important it is not to keep a business engagement, if one wants to retain any sense of the beauty of life, but still I think you had better wait till Uncle Jack arrives. I know he wants to speak to you about your emigrating. + +**Algernon.** About my what? + +**Cecily.** Your emigrating. He has gone up to buy your outfit. + +**Algernon.** I certainly wouldn’t let Jack buy my outfit. He has no taste in neckties at all. + +**Cecily.** I don’t think you will require neckties. Uncle Jack is sending you to Australia. + +**Algernon.** Australia! I’d sooner die. + +**Cecily.** Well, he said at dinner on Wednesday night, that you would have to choose between this world, the next world, and Australia. + +**Algernon.** Oh, well! The accounts I have received of Australia and the next world, are not particularly encouraging. This world is good enough for me, cousin Cecily. + +**Cecily.** Yes, but are you good enough for it? + +**Algernon.** I’m afraid I’m not that. That is why I want you to reform me. You might make that your mission, if you don’t mind, cousin Cecily. + +**Cecily.** I’m afraid I’ve no time, this afternoon. + +**Algernon.** Well, would you mind my reforming myself this afternoon? + +**Cecily.** It is rather Quixotic of you. But I think you should try. + +**Algernon.** I will. I feel better already. + +**Cecily.** You are looking a little worse. + +**Algernon.** That is because I am hungry. + +**Cecily.** How thoughtless of me. I should have remembered that when one is going to lead an entirely new life, one requires regular and wholesome meals. Won’t you come in? + +**Algernon.** Thank you. Might I have a buttonhole first? I never have any appetite unless I have a buttonhole first. + +**Cecily.** A Marechal Niel? [Picks up scissors.] + +**Algernon.** No, I’d sooner have a pink rose. + +**Cecily.** Why? [Cuts a flower.] + +**Algernon.** Because you are like a pink rose, Cousin Cecily. + +**Cecily.** I don’t think it can be right for you to talk to me like that. Miss Prism never says such things to me. + +**Algernon.** Then Miss Prism is a short-sighted old lady. [**Cecily** puts the rose in his buttonhole.] You are the prettiest girl I ever saw. + +**Cecily.** Miss Prism says that all good looks are a snare. + +**Algernon.** They are a snare that every sensible man would like to be caught in. + +**Cecily.** Oh, I don’t think I would care to catch a sensible man. I shouldn’t know what to talk to him about. + +[They pass into the house. **Miss Prism** and **Dr. Chasuble** return.] + +**Miss Prism.** You are too much alone, dear Dr. Chasuble. You should get married. A misanthrope I can understand—a womanthrope, never! + +**Chasuble.** [With a scholar’s shudder.] Believe me, I do not deserve so neologistic a phrase. The precept as well as the practice of the Primitive Church was distinctly against matrimony. + +**Miss Prism.** [Sententiously.] That is obviously the reason why the Primitive Church has not lasted up to the present day. And you do not seem to realise, dear Doctor, that by persistently remaining single, a man converts himself into a permanent public temptation. Men should be more careful; this very celibacy leads weaker vessels astray. + +**Chasuble.** But is a man not equally attractive when married? + +**Miss Prism.** No married man is ever attractive except to his wife. + +**Chasuble.** And often, I’ve been told, not even to her. + +**Miss Prism.** That depends on the intellectual sympathies of the woman. Maturity can always be depended on. Ripeness can be trusted. Young women are green. [**Dr. Chasuble** starts.] I spoke horticulturally. My metaphor was drawn from fruits. But where is Cecily? + +**Chasuble.** Perhaps she followed us to the schools. + +[Enter **Jack** slowly from the back of the garden. He is dressed in the deepest mourning, with crape hatband and black gloves.] + +**Miss Prism.** Mr. Worthing! + +**Chasuble.** Mr. Worthing? + +**Miss Prism.** This is indeed a surprise. We did not look for you till Monday afternoon. + +**Jack.** [Shakes **Miss Prism’s** hand in a tragic manner.] I have returned sooner than I expected. Dr. Chasuble, I hope you are well? + +**Chasuble.** Dear Mr. Worthing, I trust this garb of woe does not betoken some terrible calamity? + +**Jack.** My brother. + +**Miss Prism.** More shameful debts and extravagance? + +**Chasuble.** Still leading his life of pleasure? + +**Jack.** [Shaking his head.] Dead! + +**Chasuble.** Your brother Ernest dead? + +**Jack.** Quite dead. + +**Miss Prism.** What a lesson for him! I trust he will profit by it. + +**Chasuble.** Mr. Worthing, I offer you my sincere condolence. You have at least the consolation of knowing that you were always the most generous and forgiving of brothers. + +**Jack.** Poor Ernest! He had many faults, but it is a sad, sad blow. + +**Chasuble.** Very sad indeed. Were you with him at the end? + +**Jack.** No. He died abroad; in Paris, in fact. I had a telegram last night from the manager of the Grand Hotel. + +**Chasuble.** Was the cause of death mentioned? + +**Jack.** A severe chill, it seems. + +**Miss Prism.** As a man sows, so shall he reap. + +**Chasuble.** [Raising his hand.] Charity, dear Miss Prism, charity! None of us are perfect. I myself am peculiarly susceptible to draughts. Will the interment take place here? + +**Jack.** No. He seems to have expressed a desire to be buried in Paris. + +**Chasuble.** In Paris! [Shakes his head.] I fear that hardly points to any very serious state of mind at the last. You would no doubt wish me to make some slight allusion to this tragic domestic affliction next Sunday. [**Jack** presses his hand convulsively.] My sermon on the meaning of the manna in the wilderness can be adapted to almost any occasion, joyful, or, as in the present case, distressing. [All sigh.] I have preached it at harvest celebrations, christenings, confirmations, on days of humiliation and festal days. The last time I delivered it was in the Cathedral, as a charity sermon on behalf of the Society for the Prevention of Discontent among the Upper Orders. The Bishop, who was present, was much struck by some of the analogies I drew. + +**Jack.** Ah! that reminds me, you mentioned christenings I think, Dr. Chasuble? I suppose you know how to christen all right? [**Dr. Chasuble** looks astounded.] I mean, of course, you are continually christening, aren’t you? + +**Miss Prism.** It is, I regret to say, one of the Rector’s most constant duties in this parish. I have often spoken to the poorer classes on the subject. But they don’t seem to know what thrift is. + +**Chasuble.** But is there any particular infant in whom you are interested, Mr. Worthing? Your brother was, I believe, unmarried, was he not? + +**Jack.** Oh yes. + +**Miss Prism.** [Bitterly.] People who live entirely for pleasure usually are. \ No newline at end of file diff --git a/tutorial/play/act 3.pmd b/tutorial/play/act 3.pmd new file mode 100644 index 0000000..87505fc --- /dev/null +++ b/tutorial/play/act 3.pmd @@ -0,0 +1,211 @@ +#lang pollen + +Morning-room at the Manor House. + +[**Gwendolen** and **Cecily** are at the window, looking out into the garden.] + +**Gwendolen.** The fact that they did not follow us at once into the house, as any one else would have done, seems to me to show that they have some sense of shame left. + +**Cecily.** They have been eating muffins. That looks like repentance. + +**Gwendolen.** [After a pause.] They don’t seem to notice us at all. Couldn’t you cough? + +**Cecily.** But I haven’t got a cough. + +**Gwendolen.** They’re looking at us. What effrontery! + +**Cecily.** They’re approaching. That’s very forward of them. + +**Gwendolen.** Let us preserve a dignified silence. + +**Cecily.** Certainly. It’s the only thing to do now. [Enter **Jack** followed by **Algernon**. They whistle some dreadful popular air from a British Opera.] + +**Gwendolen.** This dignified silence seems to produce an unpleasant effect. + +**Cecily.** A most distasteful one. + +**Gwendolen.** But we will not be the first to speak. + +**Cecily.** Certainly not. + +**Gwendolen.** Mr. Worthing, I have something very particular to ask you. Much depends on your reply. + +**Cecily.** Gwendolen, your common sense is invaluable. Mr. Moncrieff, kindly answer me the following question. Why did you pretend to be my guardian’s brother? + +**Algernon.** In order that I might have an opportunity of meeting you. + +**Cecily.** [To **Gwendolen**.] That certainly seems a satisfactory explanation, does it not? + +**Gwendolen.** Yes, dear, if you can believe him. + +**Cecily.** I don’t. But that does not affect the wonderful beauty of his answer. + +**Gwendolen.** True. In matters of grave importance, style, not sincerity is the vital thing. Mr. Worthing, what explanation can you offer to me for pretending to have a brother? Was it in order that you might have an opportunity of coming up to town to see me as often as possible? + +**Jack.** Can you doubt it, Miss Fairfax? + +**Gwendolen.** I have the gravest doubts upon the subject. But I intend to crush them. This is not the moment for German scepticism. [Moving to **Cecily**.] Their explanations appear to be quite satisfactory, especially Mr. Worthing’s. That seems to me to have the stamp of truth upon it. + +**Cecily.** I am more than content with what Mr. Moncrieff said. His voice alone inspires one with absolute credulity. + +**Gwendolen.** Then you think we should forgive them? + +**Cecily.** Yes. I mean no. + +**Gwendolen.** True! I had forgotten. There are principles at stake that one cannot surrender. Which of us should tell them? The task is not a pleasant one. + +**Cecily.** Could we not both speak at the same time? + +**Gwendolen.** An excellent idea! I nearly always speak at the same time as other people. Will you take the time from me? + +**Cecily.** Certainly. [**Gwendolen** beats time with uplifted finger.] + +**Gwendolen** and **Cecily** [Speaking together.] Your Christian names are still an insuperable barrier. That is all! + +**Jack** and **Algernon** [Speaking together.] Our Christian names! Is that all? But we are going to be christened this afternoon. + +**Gwendolen.** [To **Jack**.] For my sake you are prepared to do this terrible thing? + +**Jack.** I am. + +**Cecily.** [To **Algernon**.] To please me you are ready to face this fearful ordeal? + +**Algernon.** I am! + +**Gwendolen.** How absurd to talk of the equality of the sexes! Where questions of self-sacrifice are concerned, men are infinitely beyond us. + +**Jack.** We are. [Clasps hands with **Algernon**.] + +**Cecily.** They have moments of physical courage of which we women know absolutely nothing. + +**Gwendolen.** [To **Jack**.] Darling! + +**Algernon.** [To **Cecily**.] Darling! [They fall into each other’s arms.] + +[Enter **Merriman**. When he enters he coughs loudly, seeing the situation.] + +**Merriman.** Ahem! Ahem! Lady Bracknell! + +**Jack.** Good heavens! + +[Enter **Lady Bracknell**. The couples separate in alarm. Exit **Merriman**.] + +**Lady Bracknell.** Gwendolen! What does this mean? + +**Gwendolen.** Merely that I am engaged to be married to Mr. Worthing, mamma. + +**Lady Bracknell.** Come here. Sit down. Sit down immediately. Hesitation of any kind is a sign of mental decay in the young, of physical weakness in the old. [Turns to **Jack**.] Apprised, sir, of my daughter’s sudden flight by her trusty maid, whose confidence I purchased by means of a small coin, I followed her at once by a luggage train. Her unhappy father is, I am glad to say, under the impression that she is attending a more than usually lengthy lecture by the University Extension Scheme on the Influence of a permanent income on Thought. I do not propose to undeceive him. Indeed I have never undeceived him on any question. I would consider it wrong. But of course, you will clearly understand that all communication between yourself and my daughter must cease immediately from this moment. On this point, as indeed on all points, I am firm. + +**Jack.** I am engaged to be married to Gwendolen Lady Bracknell! + +**Lady Bracknell.** You are nothing of the kind, sir. And now, as regards Algernon! . . . Algernon! + +**Algernon.** Yes, Aunt Augusta. + +**Lady Bracknell.** May I ask if it is in this house that your invalid friend Mr. Bunbury resides? + +**Algernon.** [Stammering.] Oh! No! Bunbury doesn’t live here. Bunbury is somewhere else at present. In fact, Bunbury is dead, + +**Lady Bracknell.** Dead! When did Mr. Bunbury die? His death must have been extremely sudden. + +**Algernon.** [Airily.] Oh! I killed Bunbury this afternoon. I mean poor Bunbury died this afternoon. + +**Lady Bracknell.** What did he die of? + +**Algernon.** Bunbury? Oh, he was quite exploded. + +**Lady Bracknell.** Exploded! Was he the victim of a revolutionary outrage? I was not aware that Mr. Bunbury was interested in social legislation. If so, he is well punished for his morbidity. + +**Algernon.** My dear Aunt Augusta, I mean he was found out! The doctors found out that Bunbury could not live, that is what I mean—so Bunbury died. + +**Lady Bracknell.** He seems to have had great confidence in the opinion of his physicians. I am glad, however, that he made up his mind at the last to some definite course of action, and acted under proper medical advice. And now that we have finally got rid of this Mr. Bunbury, may I ask, Mr. Worthing, who is that young person whose hand my nephew Algernon is now holding in what seems to me a peculiarly unnecessary manner? + +**Jack.** That lady is Miss Cecily Cardew, my ward. [**Lady Bracknell** bows coldly to **Cecily**.] + +**Algernon.** I am engaged to be married to Cecily, Aunt Augusta. + +**Lady Bracknell.** I beg your pardon? + +**Cecily.** Mr. Moncrieff and I are engaged to be married, Lady Bracknell. + +**Lady Bracknell.** [With a shiver, crossing to the sofa and sitting down.] I do not know whether there is anything peculiarly exciting in the air of this particular part of Hertfordshire, but the number of engagements that go on seems to me considerably above the proper average that statistics have laid down for our guidance. I think some preliminary inquiry on my part would not be out of place. Mr. Worthing, is Miss Cardew at all connected with any of the larger railway stations in London? I merely desire information. Until yesterday I had no idea that there were any families or persons whose origin was a Terminus. [**Jack** looks perfectly furious, but restrains himself.] + +**Jack.** [In a clear, cold voice.] Miss Cardew is the grand-daughter of the late Mr. Thomas Cardew of 149 Belgrave Square, S.W.; Gervase Park, Dorking, Surrey; and the Sporran, Fifeshire, N.B. + +**Lady Bracknell.** That sounds not unsatisfactory. Three addresses always inspire confidence, even in tradesmen. But what proof have I of their authenticity? + +**Jack.** I have carefully preserved the Court Guides of the period. They are open to your inspection, Lady Bracknell. + +**Lady Bracknell.** [Grimly.] I have known strange errors in that publication. + +**Jack.** Miss Cardew’s family solicitors are Messrs. Markby, Markby, and Markby. + +**Lady Bracknell.** Markby, Markby, and Markby? A firm of the very highest position in their profession. Indeed I am told that one of the Mr. Markby’s is occasionally to be seen at dinner parties. So far I am satisfied. + +**Jack.** [Very irritably.] How extremely kind of you, Lady Bracknell! I have also in my possession, you will be pleased to hear, certificates of Miss Cardew’s birth, baptism, whooping cough, registration, vaccination, confirmation, and the measles; both the German and the English variety. + +**Lady Bracknell.** Ah! A life crowded with incident, I see; though perhaps somewhat too exciting for a young girl. I am not myself in favour of premature experiences. [Rises, looks at her watch.] Gwendolen! the time approaches for our departure. We have not a moment to lose. As a matter of form, Mr. Worthing, I had better ask you if Miss Cardew has any little fortune? + +**Jack.** Oh! about a hundred and thirty thousand pounds in the Funds. That is all. Goodbye, Lady Bracknell. So pleased to have seen you. + +**Lady Bracknell.** [Sitting down again.] A moment, Mr. Worthing. A hundred and thirty thousand pounds! And in the Funds! Miss Cardew seems to me a most attractive young lady, now that I look at her. Few girls of the present day have any really solid qualities, any of the qualities that last, and improve with time. We live, I regret to say, in an age of surfaces. [To **Cecily**.] Come over here, dear. [**Cecily** goes across.] Pretty child! your dress is sadly simple, and your hair seems almost as Nature might have left it. But we can soon alter all that. A thoroughly experienced French maid produces a really marvellous result in a very brief space of time. I remember recommending one to young Lady Lancing, and after three months her own husband did not know her. + +**Jack.** And after six months nobody knew her. + +**Lady Bracknell.** [Glares at **Jack** for a few moments. Then bends, with a practised smile, to **Cecily**.] Kindly turn round, sweet child. [**Cecily** turns completely round.] No, the side view is what I want. [**Cecily** presents her profile.] Yes, quite as I expected. There are distinct social possibilities in your profile. The two weak points in our age are its want of principle and its want of profile. The chin a little higher, dear. Style largely depends on the way the chin is worn. They are worn very high, just at present. Algernon! + +**Algernon.** Yes, Aunt Augusta! + +**Lady Bracknell.** There are distinct social possibilities in Miss Cardew’s profile. + +**Algernon.** Cecily is the sweetest, dearest, prettiest girl in the whole world. And I don’t care twopence about social possibilities. + +**Lady Bracknell.** Never speak disrespectfully of Society, Algernon. Only people who can’t get into it do that. [To **Cecily**.] Dear child, of course you know that Algernon has nothing but his debts to depend upon. But I do not approve of mercenary marriages. When I married Lord Bracknell I had no fortune of any kind. But I never dreamed for a moment of allowing that to stand in my way. Well, I suppose I must give my consent. + +**Algernon.** Thank you, Aunt Augusta. + +**Lady Bracknell.** Cecily, you may kiss me! + +**Cecily.** [Kisses her.] Thank you, Lady Bracknell. + +**Lady Bracknell.** You may also address me as Aunt Augusta for the future. + +**Cecily.** Thank you, Aunt Augusta. + +**Lady Bracknell.** The marriage, I think, had better take place quite soon. + +**Algernon.** Thank you, Aunt Augusta. + +**Cecily.** Thank you, Aunt Augusta. + +**Lady Bracknell.** To speak frankly, I am not in favour of long engagements. They give people the opportunity of finding out each other’s character before marriage, which I think is never advisable. + +**Jack.** I beg your pardon for interrupting you, Lady Bracknell, but this engagement is quite out of the question. I am Miss Cardew’s guardian, and she cannot marry without my consent until she comes of age. That consent I absolutely decline to give. + +**Lady Bracknell.** Upon what grounds may I ask? Algernon is an extremely, I may almost say an ostentatiously, eligible young man. He has nothing, but he looks everything. What more can one desire? + +**Jack.** It pains me very much to have to speak frankly to you, Lady Bracknell, about your nephew, but the fact is that I do not approve at all of his moral character. I suspect him of being untruthful. [**Algernon** and **Cecily** look at him in indignant amazement.] + +**Lady Bracknell.** Untruthful! My nephew Algernon? Impossible! He is an Oxonian. + +**Jack.** I fear there can be no possible doubt about the matter. This afternoon during my temporary absence in London on an important question of romance, he obtained admission to my house by means of the false pretence of being my brother. Under an assumed name he drank, I’ve just been informed by my butler, an entire pint bottle of my Perrier-Jouet, Brut, ’89; wine I was specially reserving for myself. Continuing his disgraceful deception, he succeeded in the course of the afternoon in alienating the affections of my only ward. He subsequently stayed to tea, and devoured every single muffin. And what makes his conduct all the more heartless is, that he was perfectly well aware from the first that I have no brother, that I never had a brother, and that I don’t intend to have a brother, not even of any kind. I distinctly told him so myself yesterday afternoon. + +**Lady Bracknell.** Ahem! Mr. Worthing, after careful consideration I have decided entirely to overlook my nephew’s conduct to you. + +**Jack.** That is very generous of you, Lady Bracknell. My own decision, however, is unalterable. I decline to give my consent. + +**Lady Bracknell.** [To **Cecily**.] Come here, sweet child. [**Cecily** goes over.] How old are you, dear? + +**Cecily.** Well, I am really only eighteen, but I always admit to twenty when I go to evening parties. + +**Lady Bracknell.** You are perfectly right in making some slight alteration. Indeed, no woman should ever be quite accurate about her age. It looks so calculating . . . [In a meditative manner.] Eighteen, but admitting to twenty at evening parties. Well, it will not be very long before you are of age and free from the restraints of tutelage. So I don’t think your guardian’s consent is, after all, a matter of any importance. + +**Jack.** Pray excuse me, Lady Bracknell, for interrupting you again, but it is only fair to tell you that according to the terms of her grandfather’s will Miss Cardew does not come legally of age till she is thirty-five. + +**Lady Bracknell.** That does not seem to me to be a grave objection. Thirty-five is a very attractive age. London society is full of women of the very highest birth who have, of their own free choice, remained thirty-five for years. Lady Dumbleton is an instance in point. To my own knowledge she has been thirty-five ever since she arrived at the age of forty, which was many years ago now. I see no reason why our dear Cecily should not be even still more attractive at the age you mention than she is at present. There will be a large accumulation of property. + +**Cecily.** Algy, could you wait for me till I was thirty-five? + +**Algernon.** Of course I could, Cecily. You know I could. + +**Cecily.** Yes, I felt it instinctively, but I couldn’t wait all that time. I hate waiting even five minutes for anybody. It always makes me rather cross. I am not punctual myself, I know, but I do like punctuality in others, and waiting, even to be married, is quite out of the question. diff --git a/tutorial/poem/ulysses.html b/tutorial/poem/ulysses.html new file mode 100644 index 0000000..6d47432 --- /dev/null +++ b/tutorial/poem/ulysses.html @@ -0,0 +1,81 @@ + + + + +
+
+"Ulysses" by Alfred Tennyson
+
+It little profits that an idle king,
+By this still hearth, among these barren crags,
+Match'd with an aged wife, I mete and dole
+Unequal laws unto a savage race,
+That hoard, and sleep, and feed, and know not me.
+
+I cannot rest from travel: I will drink
+Life to the lees; all times I have enjoy'd
+Greatly, have suffer'd greatly, both with those
+That loved me, and alone; on shore, and when
+Thro' scudding drifts the rainy Hyades
+Vext the dim sea: I am become a name;
+For always roaming with a hungry heart
+Much have I seen and known; cities of men
+And manners, climates, councils, governments,
+Myself not least, but honour'd of them all;
+And drunk delight of battle with my peers,
+Far on the ringing plains of windy Troy,
+I am a part of all that I have met;
+Yet all experience is an arch wherethro'
+Gleams that untravell'd world, whose margin fades
+For ever and for ever when I move.
+How dull it is to pause, to make an end,
+To rust unburnish'd, not to shine in use!
+As tho' to breathe were life. Life piled on life
+Were all too little, and of one to me
+Little remains: but every hour is saved
+From that eternal silence, something more,
+A bringer of new things; and vile it were
+For some three suns to store and hoard myself,
+And this gray spirit yearning in desire
+To follow knowledge like a sinking star,
+Beyond the utmost bound of human thought.
+
+   This is my son, mine own Telemachus,
+To whom I leave the scepter and the isle—
+Well-loved of me, discerning to fulfil
+This labour, by slow prudence to make mild
+A rugged people, and thro' soft degrees
+Subdue them to the useful and the good.
+Most blameless is he, centred in the sphere
+Of common duties, decent not to fail
+In offices of tenderness, and pay
+Meet adoration to my household gods,
+When I am gone. He works his work, I mine.
+
+   There lies the port; the vessel puffs her sail:
+There gloom the dark broad seas. My mariners,
+Souls that have toil'd, and wrought, and thought with me—
+That ever with a frolic welcome took
+The thunder and the sunshine, and opposed
+Free hearts, free foreheads—you and I are old;
+Old age hath yet his honour and his toil;
+Death closes all: but something ere the end,
+Some work of noble note, may yet be done,
+Not unbecoming men that strove with Gods.
+The lights begin to twinkle from the rocks:
+The long day wanes: the slow moon climbs: the deep
+Moans round with many voices. Come, my friends,
+'Tis not too late to seek a newer world.
+Push off, and sitting well in order smite
+The sounding furrows; for my purpose holds
+To sail beyond the sunset, and the baths
+Of all the western stars, until I die.
+It may be that the gulfs will wash us down:
+It may be we shall touch the Happy Isles,
+And see the great Achilles, whom we knew.
+Tho' much is taken, much abides; and tho'
+We are not now that strength which in old days
+Moved earth and heaven; that which we are, we are;
+One equal temper of heroic hearts,
+Made weak by time and fate, but strong in will
+To strive, to seek, to find, and not to yield.
diff --git a/tutorial/poem/ulysses.html.pp b/tutorial/poem/ulysses.html.pp
new file mode 100644
index 0000000..9f399d3
--- /dev/null
+++ b/tutorial/poem/ulysses.html.pp
@@ -0,0 +1,89 @@
+#lang pollen
+
+<<<<<<< HEAD
+
+
+
+
+
+=======
+>>>>>>> squash! earnest
+"Ulysses" by Alfred Tennyson
+
+It little profits that an idle king, 
+By this still hearth, among these barren crags, 
+Match'd with an aged wife, I mete and dole 
+Unequal laws unto a savage race, 
+That hoard, and sleep, and feed, and know not me. 
+
+I cannot rest from travel: I will drink 
+Life to the lees; all times I have enjoy'd 
+Greatly, have suffer'd greatly, both with those 
+That loved me, and alone; on shore, and when 
+Thro' scudding drifts the rainy Hyades 
+Vext the dim sea: I am become a name; 
+For always roaming with a hungry heart 
+Much have I seen and known; cities of men 
+And manners, climates, councils, governments, 
+Myself not least, but honour'd of them all; 
+And drunk delight of battle with my peers, 
+Far on the ringing plains of windy Troy, 
+I am a part of all that I have met; 
+Yet all experience is an arch wherethro' 
+Gleams that untravell'd world, whose margin fades 
+For ever and for ever when I move. 
+How dull it is to pause, to make an end, 
+To rust unburnish'd, not to shine in use! 
+As tho' to breathe were life. Life piled on life 
+Were all too little, and of one to me 
+Little remains: but every hour is saved 
+From that eternal silence, something more, 
+A bringer of new things; and vile it were 
+For some three suns to store and hoard myself, 
+And this gray spirit yearning in desire 
+To follow knowledge like a sinking star, 
+Beyond the utmost bound of human thought. 
+
+   This is my son, mine own Telemachus, 
+To whom I leave the scepter and the isle— 
+Well-loved of me, discerning to fulfil 
+This labour, by slow prudence to make mild 
+A rugged people, and thro' soft degrees 
+Subdue them to the useful and the good. 
+Most blameless is he, centred in the sphere 
+Of common duties, decent not to fail 
+In offices of tenderness, and pay 
+Meet adoration to my household gods, 
+When I am gone. He works his work, I mine. 
+
+   There lies the port; the vessel puffs her sail: 
+There gloom the dark broad seas. My mariners, 
+Souls that have toil'd, and wrought, and thought with me— 
+That ever with a frolic welcome took 
+The thunder and the sunshine, and opposed 
+Free hearts, free foreheads—you and I are old; 
+Old age hath yet his honour and his toil; 
+Death closes all: but something ere the end, 
+Some work of noble note, may yet be done, 
+Not unbecoming men that strove with Gods. 
+The lights begin to twinkle from the rocks: 
+The long day wanes: the slow moon climbs: the deep 
+Moans round with many voices. Come, my friends, 
+'Tis not too late to seek a newer world. 
+Push off, and sitting well in order smite 
+The sounding furrows; for my purpose holds 
+To sail beyond the sunset, and the baths 
+Of all the western stars, until I die. 
+It may be that the gulfs will wash us down: 
+It may be we shall touch the Happy Isles, 
+And see the great Achilles, whom we knew. 
+Tho' much is taken, much abides; and tho' 
+We are not now that strength which in old days 
+Moved earth and heaven; that which we are, we are; 
+One equal temper of heroic hearts, 
+Made weak by time and fate, but strong in will 
+<<<<<<< HEAD
+To strive, to seek, to find, and not to yield. 
+=======
+To strive, to seek, to find, and not to yield. 
+>>>>>>> squash! earnest
diff --git a/tutorial/poem/waste-land.html.pp b/tutorial/poem/waste-land.html.pp
new file mode 100644
index 0000000..a367979
--- /dev/null
+++ b/tutorial/poem/waste-land.html.pp
@@ -0,0 +1,81 @@
+#lang pollen
+
+APRIL is the cruellest month, breeding	 
+Lilacs out of the dead land, mixing	 
+Memory and desire, stirring	 
+Dull roots with spring rain.	 
+Winter kept us warm, covering
+Earth in forgetful snow, feeding	 
+A little life with dried tubers.	 
+Summer surprised us, coming over the Starnbergersee	 
+With a shower of rain; we stopped in the colonnade,	 
+And went on in sunlight, into the Hofgarten,
+And drank coffee, and talked for an hour.	 
+Bin gar keine Russin, stamm’ aus Litauen, echt deutsch.	 
+And when we were children, staying at the archduke’s,	 
+My cousin’s, he took me out on a sled,	 
+And I was frightened. He said, Marie,
+Marie, hold on tight. And down we went.	 
+In the mountains, there you feel free.	 
+I read, much of the night, and go south in the winter.	 
+ 
+What are the roots that clutch, what branches grow	 
+Out of this stony rubbish? Son of man,
+You cannot say, or guess, for you know only	 
+A heap of broken images, where the sun beats,	 
+And the dead tree gives no shelter, the cricket no relief,	 
+And the dry stone no sound of water. Only	 
+There is shadow under this red rock,
+(Come in under the shadow of this red rock),	 
+And I will show you something different from either	 
+Your shadow at morning striding behind you	 
+Or your shadow at evening rising to meet you;	 
+I will show you fear in a handful of dust.
+        Frisch weht der Wind	 
+        Der Heimat zu,	 
+        Mein Irisch Kind,	 
+        Wo weilest du?	 
+“You gave me hyacinths first a year ago;
+They called me the hyacinth girl.”	 
+—Yet when we came back, late, from the Hyacinth garden,	 
+Your arms full, and your hair wet, I could not	 
+Speak, and my eyes failed, I was neither	 
+Living nor dead, and I knew nothing,
+Looking into the heart of light, the silence.	 
+Öd’ und leer das Meer.	 
+ 
+Madame Sosostris, famous clairvoyante,	 
+Had a bad cold, nevertheless	 
+Is known to be the wisest woman in Europe,
+With a wicked pack of cards. Here, said she,	 
+Is your card, the drowned Phoenician Sailor,	 
+(Those are pearls that were his eyes. Look!)	 
+Here is Belladonna, the Lady of the Rocks,	 
+The lady of situations.
+Here is the man with three staves, and here the Wheel,	 
+And here is the one-eyed merchant, and this card,	 
+Which is blank, is something he carries on his back,	 
+Which I am forbidden to see. I do not find	 
+The Hanged Man. Fear death by water.
+I see crowds of people, walking round in a ring.	 
+Thank you. If you see dear Mrs. Equitone,	 
+Tell her I bring the horoscope myself:	 
+One must be so careful these days.	 
+ 
+Unreal City,
+Under the brown fog of a winter dawn,	 
+A crowd flowed over London Bridge, so many,	 
+I had not thought death had undone so many.	 
+Sighs, short and infrequent, were exhaled,	 
+And each man fixed his eyes before his feet.
+Flowed up the hill and down King William Street,	 
+To where Saint Mary Woolnoth kept the hours	 
+With a dead sound on the final stroke of nine.	 
+There I saw one I knew, and stopped him, crying “Stetson!	 
+You who were with me in the ships at Mylae!
+That corpse you planted last year in your garden,	 
+Has it begun to sprout? Will it bloom this year?	 
+Or has the sudden frost disturbed its bed?	 
+Oh keep the Dog far hence, that’s friend to men,	 
+Or with his nails he’ll dig it up again!
+You! hypocrite lecteur!—mon semblable,—mon frère!”
\ No newline at end of file
diff --git a/tutorial/space.jpg b/tutorial/space.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a60f400cd5dc99d6ad111db0e69477404f4b7662
GIT binary patch
literal 124425
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

0$_NqNXt&Jz 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�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 literal 0 HcmV?d00001 diff --git a/tutorial/styles.css b/tutorial/styles.css new file mode 100644 index 0000000..a273fed --- /dev/null +++ b/tutorial/styles.css @@ -0,0 +1,48 @@ + +body { + margin: 0 auto 0 auto; + padding: 0; +} + + +h1 { + font-size: 40px; + font-family: "Alegreya Sans"; + font-weight: 700; + color: white; + margin-top: -5rem; + margin-left: 15%; + margin-right: 15%; +} + + +h2 { + font-size: 22px; + font-family: "Alegreya Sans"; + font-weight: 700; + margin-left: 15%; + margin-right: 15%; +} + + +p { + color: #333; + font-size: 22px; + line-height: 1.4; + font-family: "Alegreya"; + margin-left: 15%; + margin-right: 15%; +} + +pre { + margin-left: 15%; + margin-right: 15%; +} + +code { + font-family: "Source Code Pro"; +} + +img { + width: 100%; +} \ No newline at end of file diff --git a/tutorial/template.html b/tutorial/template.html new file mode 100644 index 0000000..d3612aa --- /dev/null +++ b/tutorial/template.html @@ -0,0 +1,9 @@ + + + + + + +◊(->html doc) + + \ No newline at end of file

s7Z#rl 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 z zy3setbtt=EYj|v6#QAaQ-0;+*=pn$)(f_Rp_S3$*USI|-V!$}_G+r|lqrvv)MLkwS zM4ql?`IqLDP!12}0aS#(%h;yFr$nz*h!2h(RSn{)?&e$^`hEUnu?bflM%2#DAYNF9 z!{>~X%z!t>P~xc*qhnhE-h)EOSEnG{S~86GWUG9orH z{}Y$Jo731!1;?i4?QIRipUq-6OjO+Q=hWeuji15ijbBkVFt8B}+NL`sP$pefHHgv4 zPv0C}XhXtaAk4x#9!Xj9wp6g){>72KIc9I$%88Jb_R;Zu)GC>RcBTFI_Yf82!idB&;>Qd^uq`NLXsHj7B0RAmaR!!u_J1{~)snQl;0kH<+?4(<{%BRzRYeS9Zu28*$x z=LV-|Z~T(*_%|i!W$I6}b@}B$mBfTCXY+d>$os!tqi_U`AqRg-rY5@nJuJ3EE=dNDG1^~?y=ct(FUcR z53ei(u;JHdIQHqLdqOd$v2Ag{aLw7X{FZ+f-z6B_sYEi4zkweAJSno{!}pJlMQSNmnXy_bhQyncNDO; zynw4T&;J;M75pIIqDY@7K7nTm$if7BIUTo%H&;f!f~h(;40t z*+Q$CBNQ52(OTEAyQ{MvBdMs36zd>^U(5$P{N2^0D=5pR6}3~Btw;uFMdh4IQb zk>0)i#{T}=rfM0z3(_9vdqZ0V4Od+YK~+r&jp;RwxLF8$I_ZL3V>j6tUTgGR#uB<+>Xx)p|->t0EozXQ}~)BIr$CSUe!eUy9L#j{ak4DBhY^NLycQnp@# zeE>MGF@5(=2-DRfB#GcejUu!Glj>XLj)5LhGruhO zqD30StkwEY>Vfll_E{75%p67+%nVy%Cg6i{y~5a>!ZE}l7n4<5PTMxWDpxn2!)rrn za@4D&EPY)e9{&c$vLO0CV;APe_p$-cPtVHwIBW&HU$VIz5Z0+((Ax-Fg#tl`nAm&q z+)UVyV=ZoY1X*n_-8paUAImLioGh3kA$=(!QjP|Q}WOG)KlH&AksEK$UFIXgd<;Ktu5g`{7ptRL#9 zfJcSTafegNo^u~lo<)_y<@^JbfYnSO7^inP?T5&LYi%ka*9^h2^d}^A-X1qlGEi?w z+1zB#V?9eiZj#PwuuLsd^IRcBaz=`u*vW!!VmQZ3%GeOwYfa14-C5d)w&AM!-VPOf zd!)Q~U%s*^-C>g$%n5tOdpq0R*ftt22~-kB)aK-YE+q2zTb#-H=RIW`?Qy5Z_R-?!Oqe9DX&y}ca+bD+ge zCvt>SilJf8lKb)GPVJ$Y>KJ6jmG&exL7oPEivfWBJN`eOl_GP?Ir_?4I8vVMk)N-x zw}dCFabmQ(jD&ycc@4jKY%5%?aROwlUO=9);bGgqjyC%>yj1idPEdx##*>FjY_%(? z4lX$&gRm>1iHx^KtZ|0%z$W*hNWDYDY7kR@k$4^Lh6lkF)tJ4-p(&B0@b<64 z;CH?0z%Tn_@(u|8?XQK8bP@TY@?G)t$>avCXy*>d2yl3vuGowE=ral7(F9la%>irP zfu}u>_^suPOewPN%q|UR({9$0%s(@;#3|-6GF=SwaZJz>9J6xeautWRx2g$u$JkkY z){6y!`It=Fwkmaq9xC#ebyzCwN|nBmK7RQ#VLODghvymC4X@e%zJ3iWGCre2o`OMTWVn9F2|>a^qsOKt1&1it%60FZ zZ#_TXhQk5>qde)~s8DespxDD6d?ormFutWex+sJ+tJ(iUME2-xNZC@VXJ`vg|1vca zo@!bWlJ93mb&&ySn1!v_OJjU?(hy{0ol#?rcibnG7P*vT=ld$*qNkO|#$GVa4R%DR zr>P9K)L(m@NV&e1y-+oGMn(bFy;%QpKmk(#|7tV9%QQ0kzN?j5!`0zstk2Nz$(5DS zKYrP!8z#}$W6$Egh7oAW?6^f9M@QLJ!4!4BIN3Nm3_o9i{`$9<}54R!TUtjQ?fYliY62a2*wr5p_ zZCz&jmcPRQgN={~Dz)u#($4X8$4Rcs&1`0i^EJCPF_^l<KpPU7xy3 zF6+s?Nx;n|k(<<#ur~>s2tstJ$o2S%DgVduXTLzwr!cBMi(jt~t~!wyh+PnS;lk#b z`HkUJ^hb_QS7}T}PLkvJpw&D-nAT7qCVpcE18{N!cZ@X`2+WI&ul>W-^v8?T zw`n?}=~0gkzbrN{C;4;on$<#(Q7OT0m%Q|Pj(VaFl59;q6JjRC7ziy-&8#ZsKC$d7 zu&y17zIM7e#nGy$A3!jfj5E5aTPA`I0LBa1!QzA&^5_7LA0^k0pf&5L>N@*e0i-XM za383c+S0m~nj186@=Ndo({2r^kv4*#st>orUQ$nQ!ZpW03pfVQ6882bZP>FGm5 z&^GkFb{W~_nN&?l$!T-o9Kq+Tb^4|^JKbsui@|Dd)k?tL$Z}sV?v9ONFLwJ@=95i6 zqYI`Qu$p+c^4yzQ#GUPlHOCIj`|?>JYR}nz;d{NJpM}Wc>nP&6$>*Mco`UA?4nu@% z$B;gA;u;mmSnT z<&rCqPSkrtKSbY5My#Q2dVlb%z!tUfacUyE!$_<6*HDYf9Xz$>Lf;Ba>2ZTz3zpip zw@kBz*H(H1E^LkiMmj9y&NuBOU2XWEs?E`_(+lxZbG=-J-MKXZ9JWd->gQ11*%;NH z-f4l36%>>sdcEGQ?VddBk!kyv62n?XtN!YMA6(e4!m`t!Sk0T@VtykoqvMDEkq@)f z-KZ>9Rq(3j-zx9Z_oni=Ll$;(tTpFQBU?q{ED)(euV-2Snwmi-qNP5&MF3XgG+x#E zIo_6Lr>$`VcQ!jdpOaf9w5Ltz3gOVO-Ka56G#VGfKD|8UkzlClP>F9lU&t0>i+yGDoy@lsi7Qb=a=T?r}oiT+Nv>X2_@+^wU^xix&PC zDBtJl?95+MtPJv!C|ghLwi`Q|tC(1P-5or&fAxF3_kCbJ{$j#fo3bH`%+S+OJv_XW zS`1}IbU4zGJwvT7Xp-)Kzb$%=DJ^oTr;f)49HE5G+)`Jra+zm)i27)YI(p8$M}NTC z#hip~+u=@266zE596sG_U2ti|P&1bRr7F;($QFZ@M_OI*Y=v%wmyGvE-;6af@3&dj z*>kxNif$@qX~!QPoc)!y0vZc?_0!Z@F^8~!p{%8po}w?Wk+8WyD&(fXg&R4Y-cq;e1ok;yE_ff5pj*;Hh|ckTXfJUu;QDj5L`k zWLP_g5grmNlI%E1cV-ey$ZM7%aAANgv=&tB097ckqS2E1aXez()gG|F@nyKIoP*=b zp=;}HUnjHmxbc**^!VYuS;WQ5t(V`b| zU|^q&F?tAoKo}4aQ6yxBR7FiF+5|yD+yaWTm+|AI^FQk~+uoHa14v4FZR(=0z-qDQ z+#WM*%B|?-q&@A!5*A`Ip+~@+Xmmw5tj>S{(u_(;b-9uJA0|^3=LO8?TcT~^uXRwN zi0p_mo27M?bvvF1$nRal-xbT($NrY|imH8CKiPD{=idFXlLrKrbumdj6QZ*{xYt_etVN{w0iH-JU}& z)!qGQENWmdvF~^L12~wPtkl5G!IP1aBJ{VTmr71PCw#}Hx00~!Y^qfXz1~tPX%iF>_OLlXYZXz7rxM!m8#Ezk(7 z>wU`Jqi`2Zv`y4XcStf0=epSL+S^3$l6EfXZIw+O*@{I|68yEqjL@A07Ol6XMA|8P z4=~b?hLfG85;Y5avO2l1!>MR^szP#v)Kh0>LI4mVKesKpD}G@j!_Q1y)%-UW@sb|| z5bd$?ZGa@=y(Td+`mg|W;gAPpi-wa-+s*O?)GPBVl@ES{Jf{P@o$Y1`EB$ucq3kb@q|+F43xUk zk%H*7a(Y?3hO`YMaB{k~t2cUQI8{ai2uG%a>6)6$7e82k8}MB|wE}vI*q;}a79;qA z1P8Fh+1GCX8{}m|(SjJ|T7)P;IL^ohT2$uXt5y&OpZMN>$bp9Yo2qO4BA7y!$99sb zHkM)^p9_fkYrYoXe{2YM{UuUlxc5dLuScpnZT8nUK~1!x|Gx`BWvz2nJN0QF&k`ET zAc8Cshzki;0P+c+j2RhBm4hTu^Cf!=%v~f4@Z=*Bq>(daCtm_RzpcHKYzibC@{JX| zuQhS4vhMoO*pMyF0`?46W^qi~*7|naReCiG+7vdORsX-knjaeMQyvm2xx znuu)j`iGo7&!Q$jay94Or7=X<$ZtOH1rgIvg|!ZsmPbih5(3T;~a(1_PAm)bmSA)2{6+ zOBIJjkdR{fY59Lu4CW8M}JxAe-zF`QI1zN8`;4IYglPlmr%P z+nhfUR4#DXi~TGe4xscv%>z+Z(*7bUR>n zMl;b#(YccSEutSrMYclp#|9sg;$KCFf>Rm^HoJ z)NrKg!XA3Btgdx6KU>f+K$M5pM*x(swyQpBMdArps8Ns5k6o5MJo))@E7sH6T3@uxP_MkaJd*0z1`zTzf}0m_QnSstOYDww z)wf;NyNn%@N~5DVU^09;=b}W3tuKp+e7E;L4KRddFD&Mk|2aO`j(?8P5KI&p_3i#} zzh~fwO<3W}oFTacv{+DE;MS1jJZ4Ef7g#I1J8pX`Qz^t8jnHQWcMYgO*ecda@L)|1 zDITqFfE3XpO^3Ge6uLsB)2Zbg{%3lAl)ZTcupJR_SDj`um17us6VpfhTmUq!BxJ;} zEZ&a9I=%XIS>B~~ z{jfqww8Kj*3e6!0P(wqQR(TP;mn|Gd17OqdBfcim6ST6ThQf;J+dW3bSd&7esHkf( zq*9Tpn!etJP4E5RTkiDO>Pjny#(3+3aPsd4Y}$XGV#+n`xr*7kx1?vkR6463#$(Q&~Ly_If3=f!p$SH0aXOUE3I79os8;R!tv^pb`A- z>S9Gzb(OFicT}7Jp%FBF%vDjtPQF7Ih9q3Q7>l)~`i`8db;Nq?HZAjO6>cin>d)d&*sSmSRc>2TWz}ad)ndMc z8lBma#a|O89Xz%v?OyMWTiU?TpGUMt#l(!tp`oWYhYM<=gz{DnYC77>S?ZjO$1Do~ zgI?YBzDv`ZHl4T(VY%E*QNx?JOV)m$!x;7t!+=A$8_yNCRyNB^!Cu?e*vy%iiRfse z)+vXpy8`JpJdVeVw_mygLTW+@o9kU}%6(0xB)JMFVKTo^0{?=WV{V?du9S(xy%sm` zy3(Pc%~5`H9nnq)i{`h(wXTMylE(fqi`7aRWN{VKSy*Q@_662uoh@fwQr!CcS~heS34h0} zziPR*QB6bt&YmDe3Ru}}ZjK1=Umjm9RC&xwJdVbODcR{dI3_6s zI|Q4f5phSPTh%QId=*Bb6mZ!O+$9Jc=Qn~rB2{dxWIlwKoGQlqiRc=zsIeOB4wKkZ zAem>gv`PaARI=E9OhtnX416}bzPdtc% z%Q`3AD>*u8F9Ys~H;^w=xOZoUTGFHM4(uRyxN}||MPu_MQZi*xL)E*?)KNe~=bq3a zCpX{!@c9A?p>u6^aZ?nhkGdL$2$^`X-sne_1i?R8-F(#L?LJ`=mmQ;ybh*pHxQt+U zSiD_Dx=J}8Ie28ZX0Ek!`2EZsBqEC~N}|Q)+09-`SJE`Mzz1qSsc#t$Ol+*{_Wz}u zAh-Ngzth-MKQu!_zqYPAC<}jwQg%6afZe1Q?5~7&n)Z5sq_2xi-Txzm!bT^R(Sn`&_!pzW*!0|4`C7@)v7SoqXoWTsU!y+z^}mz%f+$BucC)1;`Y zMxnF@SzSP+V1>)6q0RA@5`%4_6e3YdIW4vNjfTI`FSoR^H=g%>*cHJ%AC3;ZDL#!o0?~LEvp0k_sRaYF20k|U88l37K zOagtnh)4964BlPQHj_Z1%h!lu<*Hzn$ zOxC!tLw>V3)p=uWR;cp*Oe!os9gKNwnb3LQ>^?lQiM%eqs7kg5hi`GxP0#zNXi-&Q zZJE54m)!$0yM^d+@dF5YWGFY6V_JlqU(_$R<`ApO>3$wQWB>lorL|H4?(X~ut6{LMO|3fMYqO~9@S{IAe(mP!NmZ|Et)|9 zqG8ggSGUpqMIj+6=7|-!Utir-O$U&sty3$T>v-^e`$J(xs8!n(dqx(0{lPJS5QJ3} zuF)hVDK3p~k{SBq`UGh6%#RlYKn6&YQzbH@cvUjhuFx+oKvZ{smCAK=c*LjVb6TnB znyTwK$V8^o{ET54@EOw|_3%7a*EWoAd(Hyp5swnbQq$U&W-uSc+gAk&I3eww#L`0M z4nx-A)k^U>>yiNez7$#Ug3-HLPkR45(j?sdtC63L*{Pon{=B{Ez2yT-Fev)dI}?l= zZRp@a3ON`Vj&`o`r&X74Jk*Cen#lGig)2y&1fyiMxUh8^Fi6BS%29A*xftta%RxB9 z9UxB1>vN}jqFuVYmdqh%KvW?J&8yNL%*C71bTkB1vtl#{Bcu&?5RJrsZb=a6wPlly zCE<-&fqW<_`owIacx=0Ab~M?Um&E}`>B4uCh579Z7m+9FJ?jenpBeT3o&VAnNVVR) zz7{^88$dHakX_VpT25^-rhuNC*w{m6q*fd4Fj_vIMUO{~rG*0>m!R3}nrYoFV@gUH8~s zSr=^!IJRxuHY&DLv2EK<#kOtRwr$(CZr*d+`FQ`r+HJKx*Bnpp!}=Y}+$8>k^{D&3 z6VuR}&=+=Vr-)vd08%ChXs`?o5(BKH zXn0Vjjh4IDK54I`b@Rj{B`-J~cLLoI3Yy2h=jPaz1>30-G2hC7yJa6zj@q-x6#YDp$)4dUVU8f;u`(g|%3-`7C6|`!P62EzhU2sP z$4ptzcmMB|+0`6{aQ|d}c$?olOxBD&nTV>F3|E}wiK9C37h&DAElO6u#?^@)F6N#B zA=R>_Zuj7O2e8||ueetGf>}ZL936gfOBKofFzTjK(v*${fJrzchf^6tYosJsxyI2pl_b(R;&11+0+aFd*bB)eV)tsrL$CeC^Wf zEajbIQyb|LHiG`hZ@QM)>(-ys;?@8jEy2>RvczB+{6GH!yGerm(@1WOY~+<*M5};+ zSzBCRrcdx5i(es8Ss1TO(qZL)?n#;|lE8>TkJms#)|{Jt|^qWFA9ebPCx@#$*90%yiL1hq=7G?1s>fAM%q*v&@=OMKknsPRn0L(?AEh-Xo z)@DSYKsjp!=en-5!x%MbUzmUUhO*i%{52(kJ+p&`Kvp6S-8FcjS1?p)&M&=Hd2Lh6 z&AKx2<*W&+kdIE3(r283Y~{lq)EbO0$TZmTa+b-8OVUv5^4*$1Ljx+4uRjUZPHMIw znN4;II{|_3vjR?yUAfG!S5#LAYi``_CZ0q0?mXy%CVlGAea&s(-Jd>Or5S*RpZfZZ zn#9v_H=%pG7~ofQ$R0A{Ln_?@xt3{-T%%2=)&Y&N#@ZNOzUZ=4a*FNbHdwaf-#U`! zXLWfvn4NY}9Aq2>f3AxL+AIau5C{V!6Z(^!WN~k2@*T9XS>rVZ{llMQ-CyH#C?a*Q z=D;40&)#XdTO#Lg*^PMHgmZc``;x>>f&Sj{Ikc`^tK4~qqcd(Uh?U3EJ$KcOZqx8| zwtxNbYcx>Uz`6S*U_dL+H8o8$A@QfVpc`s#uwLeW){xPkKPhScts0WW`@z|Fxa9cs z5p`c^yL|Pf^L8~sXnOUaJG-5oZDT0e=5$6Wg^IYZwd=4sn3%Z!XkiTvm52AM`%CHf zpxpJD)D{5&Tsr9AE%2>$cDY%I1d}5!H{a|+oA!m$yaV_*xmtZ?2);@6QktXZr73G! zQ2jCtKYpRPF>KiP=~mHbVby`LxR{KY;&O)pmjC-$Xmq0LhtJBj|6JGUvA{k87^cT z8Yt)tjmDXAl>|rK-r6KS=RHE9b*Ox(Vj1~qqy+W5%qtMtosG&;zX^0!tRnV}2|muI z$zdbqqE6Hiq}5-LSc*v0pSS0%#`1o2JPqEpH2A5+GiS=9V0sDK1tcQZp`m(>j$s+E zMUpUh@gKK0Ve0~)>&g@~5RS@?FUGw4e(#t7e31Tu)PVPOUV2rwrls1=72a2r09m^9 zb`-YL=f{xH5fK0w2E8+JeQ>_8*fBrt$PK2Nd8zq;NiTitA<^uX_PCVcG_6Fyr zd2(~Ik(i#Cw%9;hz7ePnd-%25t1Hrm>^_x6+l6WXY*F$>f!C+&nqHV%eUF=sdbW15 zg8DYcfd>3-m<&kOp6~hTX}bF8>>6yH~R#&3aO88PV>s-*}+VGN2S- z#MBXF-PzjG1aDP-QT+k|f}#s2qo+9)!w6@Vx<)sz`VZdWK|e_Kkf%t@e6{@))%aL0 z4uh4IJTN|t;HV%;uPdP~erRE0A(ek_##Cqm%@vldfOQWZi_={mux$Yuiy7WSw<~kd@jG{+|F?`Ohphw4Y}y?#4EIk%4vggW1Rct6_b+b*9nn=-Y`1X0UbV8vFY)eS3J zi!#mEx8Y;k$D!fh^lR_H!NX<@Oq>}ZE7c;tt@QrxnPHVnbz$Ysy23%*-<8S6l%3A| z!23%4MuAhVCS*P}K8F7Lu6ptjFnbqK0vxiFk=p)IGMK3!&laaSsM+9w7=WXXWD4@g zo9)2*G;ex!Ek!)&9BtE((RB6(tD*MR-`)W4ovuFdNf(1B;OQ|sT2%i)*NKbVllLq% zO4)@acn&!pw-XhRc#e1{!=|%>3U$cw)+lhz27Jej47%+pEcW>27Lf|A_WR6?3LE>5 zqizo`Cfhb|Cn@hKHKGYqyY=HDk)_rG(s3C6MX3O0L8rd^SFT7y2o1GC`*5?R60G)db zp7!gj5Ltog*U4yJ&5|>6Bh-ToKLDeOI>};&o_4RP7P14KX)|i|4{8Z% zv%viURgr%+-Dpk6jR&osATb2f?V9aj3nLdS!8bWKy{olr)m8{SJGrab9~1r13Kc-K zH(`~h`4FeO640K=QUOJSHM?9=0S*+MtHM4_ftVo$_!W!9)LOyC5!_|ofmR3Gl6sLF z-4@YMv4%srx5THso=R5yh8^!05)DyUu@N!RK-*0K)&O8k;XUX8?|)+`h$MyRpbQxf zeMAXS%IPz%zmtuO>8L8S>Oif%j3jOO{AtQ&Gb%CpwmZk0zvRNlWWJ8$*J?#xEYwc?gN?Yw%BJBwu*XG80pvHq}Yi#zx;hVOD z48!Lm;;idX%8Y05W<_b_N2^u`>wevEBnXmq`xJ!|l!pu|vDoOD0^45B2Ba418e)`(^J_J{(y2|oOF+XfVbr)uUh?ZPwcR}6sbP4a%bowy44-g$NW~{Fvv5reE z3#Yqa9&X&97^U8jLrtwP*?1?mfk4{b8Wrl+CNfKzYzoo+EGQ z%4|SLyW-+{$ny$+3%y`@-MfpGk6yrxyRoj>f64JA1%kD<-xvy8jrpx=xgLxSwXcet zBdaugojYdMoa1)~n<2x*grxLgyXe#-eZD4s#_#fPF zL6*YVbu20SDOAwXvWgLe+T8r&b~>O1WnIW{5-z;%d^K|XqQAn143wprVl+u@Ow@Z# z5i{+JP%bVbLUsbzJodskRVuZjM7gBnrtRuTB43k%oa$JbT(44C{LQ3AOq!HDK2cYU!3kCE>IF$2J#~u^yw3jSYH6^C} za8oUgrC}CFO%S-auM<|DwWLc;1_JL`^*i4`LzNAhIy(*w#|X(ed!2U|kh9Y;AgG7+ z{V(O3+&+kQx`||kG5{2!Ha@Q)Fhlgf)FkZSZCT0P!XL{pelN@ZAA-+Sn0^RbgL@Lg zp&9I+bMFl36tD~@NDb1B3oXNyO&v9W7G-5OjHAA@J1LV{Y}TDMH9LoO{!A6s3*6lU z#r;AG?yK-~=-Y*&ljk8N^&O)YjT5=Pu-LpqfgXo)nGC-j_?pipht!p2C1h}#Iya8m zWEV`Q>v&%F>VAu_+KcM*lAqw>X?zFz^zCRzVr2O+=&tN3pf|h$ezQ(*4*F$T;*ST} z?7Ban?kBnGsixp`m%=XWY*J?iGTzqG-JLe)7sz84l0L&C&0LY$5#-gGzki@8daG#T zl!SElpeb@CTD?W%^(lYdXbzCTUMhCBI@nq9jO&IcMD-Z?^gh-2;l@9!GYn1DgEqEE9mqfT|D=XLhgTL1Em!^EiZ}eu8#z&!VolSol+)!^wW7G3j2NyG;fXr z7&eNyE{Ii#Wgq`aPbj+~X9+boy_oTZLaOVXg-&*rvUsB;L6a6S$YfXJRTC?3%PobcDg|KaF;`d~ zb@JkdJO-rq_elvZLzSr8IE2sY0){~E=T6B_y>cu2k&TDXRe3pH3b5CKEEPS2)40}B z*F&sCinCBgWeeeOX#alRIIG2XXu(%vq`5Zf0Z9focqK4t@hSm#j-- z_2*?UQxzQab}Y)|ffA%*I|9Q##`q26NZ_T$_V@YG%*^G$qoXSv&GZ^j2({<#Yj|;g zKTH@yZaxv5V}^u*Ml84jq5+SPNLH0`F4NrDQx}D#$itU1LeJk_B8!;daGj0r>LlVn z=%uFx%%N3xX`6x)dR(ti5$D7~L});FxW`_QMMQ2l2o43Tiy81$P>Nwv=S|6X;5mQ^ zFFItZ;^FEh2&;|qr3lDa8|5Kf+=gC#kqxQu`t#rnh6eo2-&G#TT&vkJ_~KgjkkVdZ z>v2<4K95pVKW38062b|8&?iaTiJ=%y+x~VCNZB+XQcuN#>ctL87B#!tK{X$XmgIy_ zObu#+1fVSV2bo*RLNxi1#|#~$c>OYEirA?D*Z4(zEcOtL5&ZO_j{eQw8hqDaP-evc zpi9!JDUIdaPik|POkQ6lf5>CSKB6`RlG7PihGZixD_M|mv{Dqyh7R&Y2HBQP< znohJY!`dhAI5B>AD^g?=Kc?o|S(~Xu+v~9gTYBFxvs8x2?jTe7(EB+5;5PNBu(cpw z4Upbh8HAEDCVsA`)H!k5KB6Q@J_KNX*j|ug#@PN|s7_26gn2HpG@L)qbUiQ|AfaZN zKb%Ae8z6fZJlh(AL|p)2tEXu$Rme~HPaH2I;_32o%o4A8?~k0R;%06@A`8aR+*?6F zgffP?WskG~snvyy44j43kQ({OuewQ%_I&Aos%C%Y1Cxh>==uW3eg1~4U~PkhsKeKG zTa-}FlbA8gFVc(T7WIjb==zdzeC+pyH0+RYXzNZMWBvD|w0>ZndZM>~@T5|1v%>1( zzNyHZWZVUr3h6Gqne>*Lt{VaS0a{Dz;91wh0IbeL>q)f{azYoTr@9su1mC zNCdh@+_u1mY>|^bY50#?DDSG(V@UsW5>je^tADzR(dIf(a{DtFo?b@Z-aOI1sXzM& z0T_@05kBGem`cEC=}&oYF2|UVzmvlIrd^^P+wk)Jr zFS4_+#qK)&O-k|*ikZODx_o+P1Kz|?0|kAXNTGLib-ih^-H~*R`p=krMq{xn*$U({;YvON>pmu@VPk~-4bk`w%~kTzs9Y0=0m}+U@Ha_;>Sy{2?Vi>|AunQ zJ^7!Q+Cp;%xHER(@35kEF6c9jOa|XfUOeQ;@wo!wptiAKy~l(N6hjVfjvf_N#XJdi zyw1gAL-_$_>uh%x6gHM*zbCz%{TiFQzrE44qc68x`79o?A4&!x(6)ADQIOAD+{Q?( zX|KeXTmGG(`eKiqZ}$g9$7K?2mdt8J~`q9#|s&CQ!?*vMrrz zKqr$CYq4(oCAWFES@hlumrfs^8ot4Y5a|T(IVQ{7FJVGgFgz#So(JpM_bD+zeXeR2 z2yg3;oa9+Z9|!`A`vHBXH_asboHh4vqg?DGm@lcAfw(wr0}}AA>ufkHZrK}`7H7lg zetMA)>b;NSdFo&1?DX0JCR7kwg?+d7s$_)xndHIX%5J$^Qw8`r@B4D#+Bx^t1m05f zTOPFd!zSRj-`C*$vNjC|+Kp&flCE+6G20ITvgVhQE5U}0+!+NXWN>DzeP!GR%w}6hJvpylY8Wac`yQqar02!j`&@iK@=6sEEiM5e5Z=!__h|zV5yJ z&z|B0o%~1zh08tKaQG*Hx9;OKn!~yyx@v&S*hXP2uOZG_Yp!t*@s{q74Xst(%Tv@J zbT?cpt|rEAS#IaSNx=H{Nu5ukq2SU&e~=z|ea!i#4gq8lVk>m#$zIJfe|MXcjoMH;5(oV8M0Zq*(( z$+a;Dv)UR7K(ftiP?K41b^sw;#M7rf^Ba-bV0T(4s@$9vLBomqF!)AH(t;-F{soKkPcsPwoS4OH zcg_r@$UKvl4izm1E(2~LbljI$2oO0Dd8!_PUibC^!OfIW8aCFnmLNq%MOS*V<)X>_ zyAcuo6@Q<$OqV~3DmkGz7*s5K7stnjs8Nid?`2 zPTCiP^ld~Fna8y&zQBIQ2_qiFNan$}cOt6u?l|Hq_pUe!2uX%olLh4IZ%2CV)j3j! zXNJKpCyMjATE?HZy#`w99dgY(fUujD)p0U&R;VGUAm|~uPA>G4%|{_xpeY{uk&2-+ z|7RP^X7Bf>h#SL(EYVWsG3DjR-2(45a6!x*`o`R39z=edrMiWn(`r-Q0&-F}Purbz z%7GGc;jT(3x6?A@QF>D?Ue?y|Y(ZBr$9IIM0Paa(!QGd4RP z{z|u({Zcm*+9R%L%wVtp25mvG}S}iaXNVp3&N2b%_YUFR(p2&CewIMgF+WO2F;B91a2R?*t zsrL1m7>SYlP1huzo$L=c?xxWg7vjmDJERiP^2RTmk}>(Xdh8758UA!UFb}pw^Y{)< zakmmZm>Id?E;tQeETEIeOk(l@VzY-@=m1K!+gN(P-`RSq1<+Iz`U*w1JzWXfi7&+8 ztEIh#1zL}MyMC+)=K0*IP1XHp`Gy?k3=y0Pv&rVKSH z!zjf(G^ISa4_hmUWorr&uBk41jkzW!FnkLV{U!`-q@Q^*fmwY!I%wk1fSo!?jG)cDT28S>2@SPtJAzh=j zVV4OFW6zX>v(?~m*vl)m9?;$_T2Ui~GOrMSy+lDZHh3BaZyYbnW2;JAcNsZS}cNIHFNbXA?E`;WkE;_D@QrnNG^X@WbO%@8@fZ+Ec|R3SZSEbU_VX zENFU=x*zuO`ZIWYmc@JWP=>sx(^_#g0@8Tf#nn;lf6mC(tbaDZdT2G6oB8X(r15Wq zRt8t0!yrBIW%Nya$_bVtK){NDG>89F)yXgJ5HR4I&?j;_*fxF{>pe< zk6=qv02S6D4tu!vILRcVi$dTjY=G%KYkc=}2p za;}K{*u&>N;XukF%6m>(asFGpypx~q|55ZZHNY#Ym2nbr_tU4yokTpZ6}hRYD=hqR zmOV{QD9tC_D-8>Fe6SUt_k{&C6b}CxsM28JN`RbIY>%c);{{|k0kQ&7Eec2EWp>3e zT`mp#uvM>IQgn~%_MH5`Ykkl4@f4XOZBQWpV(oTn!$g|is^Rj?h{SfT>=B94t)gN$ zXVsb6twgM~1?5MD8u|m6nUO1+Sk;zBbXw0eFYagW5>6fy7ooTHXhIyfAQ4gyIi5O!K8p4{CtM^w6vfu;*n6^*n z(b4DyAZUAB>avVqTx)_5L?;6Vg~@Wj;ZNaI(rDhFQ%&FSA-A2KvOnP} zqf~==6KA_`)$gA7JH~~D8N@xMEnvsC*gEQPArmIqmw$g|uP$&;XDgOxInzFoG&$QC zQX)qt!e{S9#_GE%p0~r+)*+y`N!bj>Z}$zt6tB`^XQcAV@gg%eBccEYvZ;Xxz?()!Ya&LAY4=Uzc|2;;(DL z8#BU1&ech6{6-GrR1hWui|(6slI_;Emx5Gj1~ICyicKKA)o$NLeyi^e?Wzez+3~be z%nQ-PEiI^PDI(6sEhN@)u%l+z!yvigMQn9_&ln_L{v4PuFZY`akv1*Wu>Jxq340~# zMa4Pksx#BSEPn2F&2|f8T^ljgq>z({((g}Qnu-x+=I|OE+!TMqD8YN>q-DroDSvM# z^)00g3v%)3Gi4+>y9GPz4h-|#uQangJsz+g4e%_&Za0gp$qx*+S6`t(#0vWh6m|^k z;72Ygt8P%FI8BwRbMcTj#F$H)E;r#-3ue2rmLf1^rX2{yb_x2zTL;tDf*vJWFH_9^ zitKN%7I<~%S5jee(_3mfS%X<56TLIVGgPQ2VaM1CEe~it!%j?3ZG}8b5*Mq8I06^L z28o~p{J0rV$D?3Xbyk9I22pE<_4|v>i?CYrHWSt~L-Y{;bz~0ECgR8yB@^SrEsON< zq_>lq%^ti7uY6YwK&qwH73*lFH-eih{TSZW%l>W@ipV1 z&(PY?vY;97@WSMx^vtSea+Jbg0%rscfBaE2)UtDoO(1DJxPX4l)?-I-0b);c*F9a&LGZken$oyV7kcVoNE?DjWh76bkN+EhY9?&%;g z*9c5wHp|2R{G9b+1&iwYa(+9d3`Q5T@|ZaY^tlJdp&uhdw3S;rTCUT6GhPwea&vo0 zzn*l*sL*}K02_j1%<0>_Q~o~uuUDnm`sCsw7D=R|N^HE9;sPB;*KdtJbHsr=|yDv^H}V zmit?QZw#5ZKL=%Xs1PK8F4=FW#s#6m6z;Uf9@_!8!QyfQi-dA!hQvcRVf!O9c_{;N z+x|9K=w*|`0(4Et)F@ONgn4s&Frjp zMGwPUn#yTs=ICh0WtYbrQm>i)<2;%raX%PBZ)W=Pes6hU5nVW0S=xdY74hloQOH06 zdp5HF@+nsbU=Nn)71}mMNs&}BSAFq&a+hYA79C5ogn_In+@aWmgkG@zs>EL&@|XnF z;1|SpG7fqnmaPsFuS1*GA4{cUQS6{}+RA*Zh-Q^o&IO+8o`tXqkyVLZqK`!oEV^zM9IjqPjt)gM2;w zZdxao<2<%eV!Fp4RejB|UV#`LY#-L7Nu$(b&B_A?WGNz`>ejecwzfBb?VsxD2t^yi z!y(7Z!j0L|XG9uySd&_>)aJQ2uLd6uMG9QEE>}JAVBaN10(R}+-dSO2b`hc2`?=Xx zj;KX#|I5FDgGzEe^&7mRvaik$CpHU3TJmRIv-^~Y6v#C(c!K<%cmpwmVoGh7C0MtC z<-}Umj8Kvhn?Lsb3I1`L?z?QFU(zkcqRdJQ?!t~0<>K5Al4|t7y@}9o8Sq$x?FFT0b}SCO+u-uIj_O zLeZZ9zOY~k-G_7n1yQmw#Ef%kJx=YY-sWy7W*B4ueK9c6+Y2hQ45dZ}Wa1Dc?~;Sd zVQVAWnWfy0y2=27Z>fnYXv+!qSl$WM*)^7Ged(qlywvkyJX~& zF%lBec;&u?`(QGtewVT8%`L|&7Gtlfw7~+_B`3~Oy-&?;gOUFnXurQWlSy*6J{`!d zScOCovOU>u+pE!~jNok|dmn+79Cn`%Kn;dSQ94jp;1llT-d1^(Sk)ilKZzzGwb0D^1$rgb`y2}Z}whj6;MUlS%07rp8fe>1BZ+tM`je>mA z;yJze@5%H+Fgu|qNSW}`S~)$YjFv`{4R)_O@x((48PLRHrOr7aH|PoWAIAS#KE(a_ zzEw%Q)BoxyMIIzZOPPgf#(p2Cfy8K_Pq$m6S6DnC(C+4T05C4zl4eH)Z~$xm5@U}G znm;rjtdyfJ`iyK~GLS7QV)6t;ts-s5gI`~Xwh3)uEn_4c>BRX1@@Om=F9ji$z-(Sr zrgluf67cBX*HN zs4lOFs7r=%yCm$Zsd|stW`?5lWff zWn!?KCvv5ioq_w^XVI>uAYbV6Owi-nS(oyc6-vztX$CrT_mA21>!Se>{J^_~BpGE% zQAr-&Nq#&P7PdA4?!o@P{2yaUK|y^R1uYGarbjGMyIs|bn z=JP&6Ith9x1$e3eoO-<%9@t16&1u=@Q$eJ9BBidH1{%JGAW<8-&n8wsQ);%i!lf3G zSH&Ic+s8gA79W~dQiJu+%1brT!5g?XE5NWLl6g>!QqGml&ga1u&jX+S8@Qt!5o54c zN37Pfa%R3A*H+M=FiL9JjME$4d{Ozr@cjN9^(il_QeNa z-kl$t1Em)}40rvFH7Fr{nJMTOUdb9)Ao7x^szdpmdp?aGBzuf{s`G5mTij!)((O?) zLYmL2NB%=oR(5dT&I8_FO>QvaQQ+b^@C+S`V<*YK2fCdnc&gdl`IJ2#dLQNBx^1bo zUuq_Q3j{(PoCPNDCLh!_bz6Pk8~!=Z*3h_*#ce#4?P_tmcAl{vmsNk}baNnY(bkJC zGF$ORGPm<1T!wm^%+R`rn7`@o>=jd|y(gE0CwntUT8p?f$b$mHv-r)LS6*|)jeNQu z(-Xp=um(%y4Bax6Dm{yaa8Vic7$qgB_ zIB;rV1*2&~y_7Okbk>=5RUrk{;T|AKyfm0VDc!tnVm#dF^n2JEV$p!hfr>UVQkWC* zRA@>T(JjZ~r<;^d6-EZys!Rl_?!|&wc#tB(xJCm>f;6#8q_;h2TdRPHlA&oD4my#A zE)^JH#;PVOjDg1oWb9bqa5JECrmNjk%yqh%9M!AKgm8FxqptysQ`1)UvDXy5;GT}C z9efxri$MqB$*E`0d7i)n^+$>`+OTMDfztLKkkIgj--WSRZ#5gh{`T=n!Qv{N0* z8!qR@o$u@5{3H|`K83!|8#38xdpbFT|8r^L!u(#o)o&SbP|FgZchnEE8JGHUHo?!s zy9td5kHGIARC{XGMd*Y1+gn)W^B4t>?=i5QpK%*$mjm^CkN&WkKoT zfgV!J)W*jc7=r*`-(R=an3Yw9h-sKu=(y*5mRq_5vnqRAztq?Htpo$>R__L_?tM%y zN+fJ{HH^CCDB9*<@*fDsB9pPze|#ZWx;q5_bQ2r#Z>@kyfwsD8S+L2T#BT`x`I&1i z3G>d_)owV8M#nl0it7X7Re+Yv-!l>cs?gPDAS!c^wfLl}_U^rUKi>14Nll+kO*!LU zkr|GIFr-XjwH9Ehp)~hvj!szG42ILYl)z%Ouj*9xduO~Onm@p7-5(_!PeFM0&)Nk` z@9L$5?hOR4uD%jZV&S+EK24@wRx)lc*qis42wpzRuU@7Z;@Kf6?$MY}it`6??CL}l zlXHRVUj*kQHPtn|fG=4y`rUcq@}e0pLA7OceCYYgDPEkP;UXagNYNy)yWRr}3L@;6 zRfufl+QyZ$Tw|qWWOOBDk{iE>?iJd>f(FD2@cjwaC5;MS zC??)V7NnC+RLZOX0bm6;*WKK&bEG^@Cxj8^i=>!^;H&2487-&=bKvoiwv}^QAhvu zL&<{9ExTRh^!p3C%gE{Qrhvl^jrA!V6E|Y;_#AEiARyxzYpb&ojT82WYN^oCc2AGG zHZ_4e&*R>e(>{Uzs}dFNJ?A(qFQ;bEkff5Vw>>qhb*il$t(i>cFlJ2LT;DEM=vZI- z__lmc2%_U_A3DNowusy_RSkE(EokG)@d1-QO&`OhKKHLhSTW3q@kRufv}gZ#8BAE)i1moQ zQKmYoM_S$85e$CDU(4aEKFK8|=mArAZ=ESL3oJ-mF1WAv(#>hWuMf^y8V!j`*-V|U<7apsPB$hNJ?Yp8 zRprHv8Sf|kmSEgU9PF4f(6f%6&HCtPQc~QyZ*pYCXB3INfB@-5&mLj`!Da;#`Bre+ z%nOnb=q9bbT+1<$Mnhjs>L43jBnDn~=Pmvfo+h?%hr(oT5bsvIv$)Y2toC3fL9Kl# zx*XZI*>%U8r+Y|^+il`OL-?}=o%I$>%e^2FZ#-55b)%_ccfdulNy_Yc)ow2<%YIa~ zYCgDV^!%LwnkpPBHXQF=T4cQ$Yd6Coa_W32%R(r~DQrCLD(PkM-}9VOW4N8{_noNZxCLcG=of?HghtDUp$HtHF_WyHeMb; z4@P2V3%Xt44{K(#U;LgcfIEY6Po!<7>+!T>$sJmDeST4}U<*SI@0W`7@M9qGWEt%^`sXc^oGgC#@L|%lr7Nw?k>kup0?l2 z9Um^wQyKYGyy-Ev&^%)21+?DsGPAC+WO{hs;{P%!0s%v!@a_Qpl|QdX6}-Yk%`Ci1 z_)^;OyLR!JB(G;9pA<(dne^p$!&>xHJK^B=>0^(W3 z@=kVaJ2FPIaCz4jQ*4Mjrs5zGoJ7k09<~Qry2MboWIgsJA z_X0m>L0_Zg(8N?$S2ks@(L6G~E0Xzly&72iN9Nn# zFJB=_mv@lG?Gcs3Kf_0 zp>R=RtpxSAtt=!Q2K(**$JIMVXA*T=+p*2=7#-WTZQHhOTOHfBZQEAIc5+8wp68tN z{dmXvUt{d5y=&B}bHSNZ+nzIsKq+Eles zfv1RHR-CV6F|RA0OPt(>{F=Nuv9OdFnxG8Q4va*a&(dI=&UV3pqj~;nCpr~M zn_)cYxoB!+A0GV%R91YXgzpOjf5-PKMzytk#6sDZJlsHiRb%?Zw9QzUv3a-OADHEK zi&#UgoK>s6gh~mo5qRaaLF@(D<$jY*zr{=oxPVE$CADOieO6{5VWD7e4Cm>C`q%#E zsbV%!ayr2Q@#6;jO1(0DgfL_Kz6h?C{o0cR4O;%Zs*5Ot9}Nqlq!{G_$;f9;9bOpO&m2A zJ`Cu;)yIO=rWeUs!gCDVf#xn8YAQ{vbAbHc6*B{XUi`a$ zmpO8CfPGy;*}FbeU-s9?oJ_i%2^C7neh6ⅆ{6WCuc6Yy-i4k+% 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 CRke`- literal 0 HcmV?d00001 diff --git a/scribblings/raco.scrbl b/scribblings/raco.scrbl index aff982d..5d67b34 100644 --- a/scribblings/raco.scrbl +++ b/scribblings/raco.scrbl @@ -6,7 +6,7 @@ @(my-eval `(require pollen pollen/file)) -@title{Using @exec{raco pollen}} +@title[#:tag "raco-pollen"]{Using @exec{raco pollen}} Racket provides centralized command-line options through @racket[raco] (short for @code{racket command}, see @other-doc['(lib "scribblings/raco/raco.scrbl")]). @@ -30,6 +30,8 @@ But if you get: You'll need to fix the problem before proceeding, most likely by reinstalling Pollen (see @racket[Installation]). +@margin-note{Pro tip: I have an alias in my @racketfont{.bash_profile} like so: @racketfont{alias polcom=@literal{'}raco pollen@literal{'}}} + @section{@racket[raco pollen]} Same as @racket[raco pollen help]. diff --git a/scribblings/result.png b/scribblings/result.png new file mode 100644 index 0000000000000000000000000000000000000000..929afc57070d2377f9dc1b8578da7db9a1ba338e GIT binary patch literal 22645 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 + + + + + +

Index

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

 

“Now you have two problems”
#%top
->html
->markup-source-path
->null-source-path
->output-path
->pagenode
->preproc-source-path
->scribble-source-path
->template-source-path
A special data structure for HTML
Acknowledgments
Any command is valid
Backstory
Block
block-txexpr?
Cache
cache-ref
cached-require
children
Command syntax using ◊
Creating a source file
current-cache
current-pagetree
Custom exports
Decode
decode
def/c
detect-linebreaks
detect-paragraphs
Development environment
Enter Racket
File
File formats
Further reading
get-template-for
has-markup-source?
has-null-source?
has-preproc-source?
has-scribble-source?
has-template-source?
has/is-markup-source?
has/is-null-source?
has/is-preproc-source?
has/is-scribble-source?
has/is-template-source?
in-pagetree?
Inserting a comment
Inserting the value of a variable
Installation
Intermission
Invoking other functions
Invoking tag functions
License & source code
make-cache
make-tag-function
Making sure raco pollen works
Markdown (.pmd extension)
Markdown mode
Markup (.pm extension)
Markup mode
markup-source?
Module reference
Naming, saving, and rendering a source file
Navigation
next
next*
Null (.p extension)
null-source?
One language, multiple dialects
pagenode?
pagenodeish?
Pagetree
Pagetree (.ptree extension)
pagetree->list
pagetree-source?
pagetree?
Pagetrees
parent
path->pagenode
pollen
Pollen as a preprocessor
Pollen command syntax
pollen/cache
pollen/decode
pollen/file
pollen/markdown
pollen/markup
pollen/pagetree
pollen/pre
pollen/ptree
pollen/render
pollen/tag
pollen/template
pollen/top
pollen/world
Pollen: the book is a program
preproc-source?
Preprocessor (.pp extension)
previous
previous*
project-block-tags
PS for Scribble users
Quick tour
raco pollen
raco pollen clone
raco pollen help
raco pollen render
raco pollen start
register-block-tag
Render
render
render-batch
render-pagetree
render-to-file
render-to-file-if-needed
reset-cache
Rethinking the solution for digital books
Running a source file
Scribble (.scrbl extension)
scribble-source?
select
select*
select-from-doc
select-from-metas
siblings
smart-dashes
smart-quotes
Source formats
Standard exports
Tag
Template
template-source?
Templated source files
Templates
The better idea: a programming model
The big picture
The book is a program
The command name
The end of the beginning
The golden rule
The lozenge glyph (◊)
The preprocessor
The project server
The project-require.rkt file
The Racket arguments
The text argument
The two command modes: text mode & Racket mode
Top
Typography
Using raco pollen
Utilities
Utility formats
validate-pagetree
Web development and its discontents
What is Pollen?
whitespace/nbsp?
whitespace?
World
world:check-project-requires-in-render?
world:command-marker
world:current-server-extras-path
world:current-server-port
world:dashboard-css
world:decodable-extensions
world:default-pagetree
world:default-port
world:default-template-prefix
world:fallback-template
world:linebreak-separator
world:main-pollen-export
world:markdown-source-ext
world:markup-source-ext
world:meta-pollen-export
world:mode-auto
world:mode-markdown
world:mode-markup
world:mode-pagetree
world:mode-preproc
world:newline
world:null-source-ext
world:pagetree-root-node
world:pagetree-source-ext
world:paragraph-separator
world:paths-excluded-from-dashboard
world:preproc-source-ext
world:project-require
world:scribble-source-ext
world:server-extras-dir
world:template-meta-key
world:template-source-ext
◊ command overview