0% found this document useful (0 votes)
5 views64 pages

JavaScript Cookbook: Programming the Web 3rd Edition Scott instant download

The document provides information about the 'JavaScript Cookbook, 3rd Edition' by John Paxton, Adam D. Scott, and Shelley Powers, which includes various JavaScript programming techniques and error handling strategies. It discusses the types of errors in JavaScript, how to throw and catch them, and emphasizes the importance of providing informative error messages. Additionally, it highlights the limitations of JavaScript's error handling and the significance of using specific error subtypes like TypeError and RangeError for better clarity in programming.

Uploaded by

inxeoskbn7138
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views64 pages

JavaScript Cookbook: Programming the Web 3rd Edition Scott instant download

The document provides information about the 'JavaScript Cookbook, 3rd Edition' by John Paxton, Adam D. Scott, and Shelley Powers, which includes various JavaScript programming techniques and error handling strategies. It discusses the types of errors in JavaScript, how to throw and catch them, and emphasizes the importance of providing informative error messages. Additionally, it highlights the limitations of JavaScript's error handling and the significance of using specific error subtypes like TypeError and RangeError for better clarity in programming.

Uploaded by

inxeoskbn7138
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 64

JavaScript Cookbook: Programming the Web 3rd

Edition Scott download

https://textbookfull.com/product/javascript-cookbook-programming-
the-web-3rd-edition-scott/

Download full version ebook from https://textbookfull.com


We believe these products will be a great fit for you. Click
the link to download now, or visit textbookfull.com
to discover even more!

Web API Cookbook Level Up Your JavaScript Applications


Joe Attardi

https://textbookfull.com/product/web-api-cookbook-level-up-your-
javascript-applications-joe-attardi/

JavaScript Learn JavaScript in 24 Hours or Less A


Beginner s Guide To Learning JavaScript Programming Now
JavaScript JavaScript Programming 1st Edition Robert
Dwight.
https://textbookfull.com/product/javascript-learn-javascript-
in-24-hours-or-less-a-beginner-s-guide-to-learning-javascript-
programming-now-javascript-javascript-programming-1st-edition-
robert-dwight/

JavaScript Object Programming Rinehart Martin

https://textbookfull.com/product/javascript-object-programming-
rinehart-martin/

Essential ASP.NET Web Forms Development: Full Stack


Programming with C#, SQL, Ajax, and JavaScript 1st
Edition Robert E. Beasley

https://textbookfull.com/product/essential-asp-net-web-forms-
development-full-stack-programming-with-c-sql-ajax-and-
javascript-1st-edition-robert-e-beasley/
Learning JavaScript 3rd Edition Ethan Brown

https://textbookfull.com/product/learning-javascript-3rd-edition-
ethan-brown/

Web Applications with Elm: Functional Programming for


the Web 1st Edition Wolfgang Loder

https://textbookfull.com/product/web-applications-with-elm-
functional-programming-for-the-web-1st-edition-wolfgang-loder/

Reactive Programming with JavaScript 1st Edition


Hayward Jonathan

https://textbookfull.com/product/reactive-programming-with-
javascript-1st-edition-hayward-jonathan/

Python Network Programming Cookbook Kathiravelu

https://textbookfull.com/product/python-network-programming-
cookbook-kathiravelu/

Python GUI Programming Cookbook Meier

https://textbookfull.com/product/python-gui-programming-cookbook-
meier/
1. 1. Errors
1. 1.1. Using Errors
2. 1.2. Capturing Errors by their subtypes
3. 1.3. Throwing useful errors
4. 1.4. Throwing custom errors
5. 1.5. Handling JSON parsing errors
2. 2. Working with HTML
1. 2.1. Accessing a Given Element and Finding Its
Parent and Child Elements
2. 2.2. Traversing the Results from querySelectorAll()
with forEach()
3. 2.3. Adding Up Values in an HTML Table
4. 2.4. Problem
5. 2.5. Finding All Elements That Share an Attribute
6. 2.6. Accessing All Images in a Page
7. 2.7. Discovering All Images in Articles Using the
Selectors API
8. 2.8. Setting an Element’s Style Attribute
9. 2.9. Inserting a New Paragraph
JavaScript Cookbook
THIRD EDITION

With Early Release ebooks, you get books in their earliest form—the author’s
raw and unedited content as they write—so you can take advantage of these
technologies long before the official release of these titles.

John Paxton, Adam D. Scott, and Shelley Powers


JavaScript Cookbook, 3E

By John Paxton, Adam D. Scott, and Shelley Powers

Copyright © 2021 John Paxton, Adam Scot, Shelley Powers. All


rights reserved.

Printed in the United States of America.

Published by O’Reilly Media, Inc., 1005 Gravenstein Highway


North, Sebastopol, CA 95472.

O’Reilly books may be purchased for educational, business, or


sales promotional use. Online editions are also available for
most titles (http://oreilly.com). For more information, contact
our corporate/institutional sales department: 800-998-9938 or
[email protected].

Editors: Simon St. Laurent and Brian MacDonald

Production Editor: Kara Ebrahim

Copyeditor: Jasmine Kwityn

Proofreader: Kara Ebrahim

Indexer: Judy McConville

Interior Designer: David Futato

Cover Designer: Ellie Volckhausen


Illustrator: Rebecca Demarest
July 2010: First Edition

February 2015: Second Edition

November 2020: Third Edition

Revision History for the Early Release


2020-06-03: First release

See http://oreilly.com/catalog/errata.csp?isbn=9781491901885
for release details.

The O’Reilly logo is a registered trademark of O’Reilly Media,


Inc. JavaScript Cookbook, 2E, the cover image, and related
trade dress are trademarks of O’Reilly Media, Inc.

While the publisher and the authors have used good faith
efforts to ensure that the information and instructions
contained in this work are accurate, the publisher and the
authors disclaim all responsibility for errors or omissions,
including without limitation responsibility for damages resulting
from the use of or reliance on this work. Use of the information
and instructions contained in this work is at your own risk. If
any code samples or other technology this work contains or
describes is subject to open source licenses or the intellectual
property rights of others, it is your responsibility to ensure that
your use thereof complies with such licenses and/or rights.

978-1-492-05568-6
Chapter 1. Errors
A NOTE FOR EARLY RELEASE READERS
With Early Release ebooks, you get books in their earliest form—the author’s raw and unedited
content as they write—so you can take advantage of these technologies long before the official
release of these titles.

This will be the fourth chapter of the final book. Please note that the GitHub repo will be made
active later on.

Errors. Everyone has them. No one is perfect. Things go


wrong. Sometimes the error could have been anticipated, other
times, not so much. To modify a cliche, it’s not so much the
error as what you do with it that matters.

What should we do with our errors, then? The default behavior


is for JavaScript to die at the point of the error, exiting with a
stack trace. We can capture an error, react to it, modify it, re-
throw it, even hide it if we choose. Returning to a theme of
this cookbook: just because we can, does not mean we should.
Our guiding light is effective, efficient, reusable JavaScript
programming. Let’s look at Errors under this light.

JavaScript is not robust at error handing in general. The


language has the Error object, which is flexible enough. But
catching errors with try-catch lacks features found in other
languages. We cannot catch errors by their type. We cannot
(easily) filter by error. Further, in the browser, it is rare that we
can recover from an error. Rare enough that the recipes below
deal with the few common error situations from which an
application can recover. In Node.js, throwing errors causes
enough problems that an entirely different pattern of error
handling involed. We will look at Node’s peculiar form of error
“handling” as well.

Our goal should be to make our programming experience


better. Instead of our JavaScript engine dying horribly with an
incomprehensible error, we can add and modify information
about the error, illuminating the path for the person (likely
ourselves) tasked with fixing the error. Allow the failure to
happen, but clarify why the error occurred and who raised it.

1.1 Using Errors


JavaScript has eight Error types. The parent type is the aptly-
named Error. There are seven subtypes, which we will look
at in the next recipe. What does an Error give us? We can
count on three properties: a constructor, name, and message.
These are all available to subclasses of Error as well. We also
have access to a toString() method which will usually
return the message property. If we are using the V8
JavaScript engine (Chrome, Node.js, possibly others), we can
use captureStackTrace() as well. More on this soon. Let’s
start with a standard JavaScript Error object.
Problem
You want to create, throw, and catch a standard error

Solution
Create an instance of Error, or a subtype, throw it, and catch it
later on. Perhaps that is too brief a description. Start by
creating an instance of Error. The constructor takes a string as
an argument. Pass something useful and indicative of what the
problem was. Consider keeping a list of the various error
strings used in the application so that they are consistent and
informative. Use the throw keyword to throw the instance you
created. Then catch it in a try-catch block.

function willThrowError() {
if ( /* something goes wrong */) {
// Create an error with useful information.
// Don't be afraid to duplicate something
from the stack trace, like the method name
throw new Error(`Problem in ${method},
${reason}`);
}
}

// Somewhere else in your code

try {
willThrowError();
// Other code will not be reached
} catch (error) {
console.error('There was an error: ', error);
}

Discussion
We can create an error either with the new keyword before the
Error or not. If Error() is called without new preceding it,
Error() acts as a function which returns an Error object. The
end result is the same. The Error constructor takes one
standard argument: the error message. This will be assigned to
the error’s message property. Some engines allow for
additional non-standard arguments to the constructor, but
these are not part of a current ECMAScript spec and are not on
track to be on a future one. Wrapping the code that will throw
an error in a try-catch block allows us to catch the error
within our code. Had we not done so, the error would have
propagated to the top of the stack and exited JavaScript. Here,
we are reporting the error to the console with
console.error. This is more or less the default behavior,
though we can add information as part of the call to
console.error.

1.2 Capturing Errors by their subtypes


JavaScript has seven subtypes of Error. We can check for a
subtype of error to determine the kind of error raised by a
problem in our code. This may illuminate the possibility of
recovery, or at least give us a little more information about
what went wrong.

The seven Error subtypes:

EvalError: thrown by use of the built-in function eval()

InternalError: Internal to the JavaScript engine; not part of


the ECMAScript spec, but used by engines for non-standard
errors

RangeError: A value is outside of its valid range

ReferenceError: Raised when encountering a problem trying


to dereference an invalid reference

SyntaxError: A problem with the syntax of evaluated code,


including JSON

TypeError: A variable or parameter is of an unexpected or


wrong type

URIError: Raised by problems with encodeURI() and


decodeURI()

Problem
How do we catcn errors by their subtype?
Solution
In your catch block, check the specific error type

try {
// Some code that will raise an error
} catch (err) {
if (err instanceof RangeError) {
// Do something about the value being out of
range
} else if (err instanceof TypeError) {
// Do something about the value being the
wrong type
} else {
// Rethrow the error
throw err;
}
}

Discussion
We may need to respond to specific subtypes of Error. Perhaps
the subtype can tell us something about what went wrong with
the code. Or maybe our code threw a specific Error subtype on
purpose, to carry additional information about the problem in
our code. Both TypeError and RangeError lend themselves to
this behavior, for example. The problem is that JavaScript
permits only one catch block, offering neither opportunity nor
syntax to capture errors by their type. Given JavaScript’s
origins, this is not surprising, but it is nonetheless
inconventient.
Our best option is to check the type of the Error ourselves. Use
an if statement with the instanceof operator to check the
type of the caught error. Remember to write a complete if-else
statement, otherwise your code may accidentally swallow the
error and suppress it. In the code above, we assume that we
cannot do anything useful with error types that are neither
RangeErrors nor TypeErrors. We re-throw other errors, so that
code higher up the stack than this can choose to capture the
error. Or, as is appropriate, the error could bubble to the top of
the stack, as it normally would.

We should note: handling errors, even by their subtype, is


fraught with difficulties in JavaScript. With rare exceptions, an
error raised by your JavaScript engine cannot be recovered
from in a meaningful sense. It is better to try to bring useful
information about the error to the attention of the user, rather
than to try to bring JavaScript back into a correct state (which
may, in fact, be impossible!).

For example: Consider an EvalError. What are we, as coders,


going to do if there’s an EvalError or a SyntaxEror? It seems
that we should go an fix our code. What about a
ReferenceError? Code cannot recover from trying to
dereference an invalid referent. We might be able to write a
catch block that returns something more informative than
“Attempted to call getFoo() on undefined”. But we cannot
determine what the original code intended. We can only
repackage the error and exit gracefully (if possible). In the
next section, we will look at two error types that offer the
possibility of recovery, as well as throwing our own, more
useful error types.

1.3 Throwing useful errors


Given the limits of JavaScript and error handling, are there
Error subtypes worth using? Several of the subtypes of Error
are limited to very specific cases. But two, the RangeError, and
the TypeError show some promise.

Problem
You want to throw useful Error subtypes

Solution
Use TypeError to express an incorrect parameter or variable
type

function calculateValue(x) {
if (typeof x !== 'number') {
throw new TypeError(`Value [${x}] is not a
number.`);
}

// Rest of the function


}

Use RangeError to express that a parameter or value is out of


range
function setAge(age) {
const upper = 125;
const lower = 18;
if (age > 125 || age < 18) {
throw new RangeError(`Age [${age}] is out of
the acceptable range of ${lower} to ${upper}.`);
}
}

Discussion
If you are going to use Errors to express incorrect states for
your application, the TypeError and RangeError hold some
promise. TypeError covers issues where the expected value
was of the wrong type. What constitutes a “wrong” type?
That’s up to us as the designers. Our code might expect one of
JavaScript’s “primitive” values returned by a call to typeof. If
our function receives an unantipated value type, we could
throw a TypeError. We can say the same with instanceof for
object types. These are not hard limits on when we might
throw a TypeError, but they are good guidelines.

Going further, if our function received the right kind of value


but it was outside of an acceptable range, we can throw a
RangeError. Note that RangeErrors are specifically bound to
numeric values. Put another way, we should not throw a
RangeError when expecting a string and receiving one that is
too short or too long. In the case of either RangeErrors or
TypeErrors, make sure your error message is informative.
Include the given value and information about the expected
value.

Do not use errors for to validate forms or other input. Errors


often do not show up in the HTML of a page, as they are re-
routed to the console. Even if they do show up in the visible
part of the page, they often contain impenetrable and weird
content which will confuse and annoy the common user. And if
they are not anticipated as part of your rendered content, they
can throw off the rendering of the rest of the view. Invalid user
data should be an expected state of your code, and should be
handled in a user-friendly manner. There are both native APIs
for form validation, as well as customizable, event-based hooks
for validation. Use those instead. Errors in JavaScript indicate a
state where your code received input that is just wrong and
should be corrected.

1.4 Throwing custom errors


The Error type might be too broad. Most subclasses are too
specific, or too limiting. What if we want to create our own
Error types? How should we subclass Error?

Problem
How do we create our own Error subtypes?
Solution
Create a subtype of Error by subclassing Error using the
ECMAScript 2015 class inheritance syntax

class CustomError extends Error {


constructor(customProp='customValue',
...params) {
super(...params);

if (Error.captureStackTrace) {
Error.captureStackTrace(this, CustomError);
}

this.name = 'CustomError';
this.customProp = customProp;
}
}

Discussion
When subclassing Error, we should keep in mind two possibly
competing concerns: stayign within the bounds of a typical
JavaScript error, and expressing enough information for our
customized error. In the former case, do not attempt to
recreate the errors or exceptions of your second favorite
language. Do not over-extend JavaScript’s Error type with extra
methods and properties. A later programmer using your new
Error subtype should be able to make reasonable assumptions
about the subtype’s API. They should be able to access
standard information in the standard way.

Your subclass constructor can take custom properties, which


should be distinct from the standard argument of an error
message. Keep in mind that Firefox and some other browsers
expect the first three arguments to the Error constructor to be
a message string, a filename, and a line number. If your
subclass’s constructor takes custom arguments, add the to the
front of the parameters list. This will make capturing standard
arguments easier, as we can use ECMAScript 2015’s rest
parameter feature to vaccuum up any remaining arguments.

In the constructor for your custom error, call super() first,


passing any standard parameters. Because your code might
run on V8 (either Chrome or Node.js), properly set this Error’s
stack trace. Check for the captureStackTrace method, and,
if present, call Error.captureStackTrace passing it a reference to
the current instance (as this) and your CustomError class.

Set the name property of your custom error subclass. This


ensures that, when reporting to the console, your error will
carry the name of your subclass, instead of the more generic
Error class.

Set any custom properties as necessary.


1.5 Handling JSON parsing errors
JavaScript Object Notation has become a popular, portable
data format thanks in part to the popularity of JavaScript.
There are two native functions availabe for JSON processing:
for JavaScript-to-JSON conversion, use
JSON.stringify(jsObject). To deserialize a JSON string
into a JavaScript object (or string, or array, etc.) use
JSON.parse(jsonString). Conversion of JavaScript to a
JSON string should not raise any errors, barring issues with the
JavaScript engine implementing JSON.stringify. On the
other hand, converting a JSON string into JavaScript has many
potential issues. The JSON could be malformed, or could just
not be JSON at all! JavaScript raises error with JSON parsing as
SyntaxErrors, which is sub-optimal. A SyntaxError is raised
when JavaScript tries to interpret syntactically invalid code.
While technically accurate, this lacks detail in the case of JSON
parsing.

Problem
How should we handle parsing of bad or malformed JSON
data?

Solution
Create a custom subtype of SyntaxError which is raised on
issues with JSON parsing.
class JSONParseError extends SyntaxError {
constructor(...params) {
super(...params);

if (Error.captureStackTrace) {
Error.captureStackTrace(this,
JSONParseError);
}

this.name = 'JSONParseError';
}
}

function betterParse(jsonString) {
try {
JSON.parse(jsonString);
} catch (err) {
if (err instanceof SyntaxError) {
throw new JSONParseError(err);
} else {
throw err;
}
}
}

Discussion
We would like to log a specific error type when JSON.parse
encounters an error. We can create a class,
JSONParseError, which is a subclass of SyntaxError, for
problems with JSON parsing. The class itself does not do
much, other than establishing the name and type
JSONParseError. But consumers of this API can now test for
JSONParseError as opposed to the too-general SyntaxError.
Logging will improve as well.

Remembering to re-throw SyntaxErrors as JSONParseErrors


anytime we parse JSON strings is tedious. Instead, we will call
betterParse(jsonString) which does the work for us.
The betterParse function wraps the call to JSON.parse()
in a try block, safely catching any SyntaxErrors. If a
SyntaxError is raised, we will re-package it as a
JSONParseError. If some other error is raised (it could happen),
we will pass that error along as-is, with no modification or re-
packaging.
Chapter 2. Working with
HTML
A NOTE FOR EARLY RELEASE READERS
With Early Release ebooks, you get books in their earliest form—the author’s raw and unedited
content as they write—so you can take advantage of these technologies long before the official
release of these titles.

This will be the thirteenth chapter of the final book. Please note that the GitHub repo will be
made active later on.

In 1995 Netscape tasked software developer Brendan Eich with


creating a programming language designed for adding
interactivity to pages in the Netscap Navigator browser. In
response, Eich infamously developed the first version of
JavaScript in 10 days. A few years later, JavaScript has became
a cross-browser standard through the adoption of the
ECMAScript standardization.

Despite the early attempt at standardization, web developers


battled for years with browsers that had different JavaScript
engine interpretations or features. Popular libraries, such as
jQuery effectively allowed us to write simple cross-browser
JavaScript. Thankfully, today’s browsers share a near uniform
implementation of the language. Allowing web developers to
write “vanilla” (library-free) JavaScript to interact with an HTML
page.

When working with HTML, we are working with the Document


Object Model (DOM), which is the data representation of the
HTML page. The recipes in this chapter will review how to
interact with the DOM of an HTML page by selecting, updating,
and removing elements from the page.

2.1 Accessing a Given Element and Finding


Its Parent and Child Elements

Problem
You want to access a specific web page element, and then find
its parent and child elements.

Solution
Give the element a unique identifier:

<div id="demodiv">
<p>
This is text.
</p>
</div>

Use document.getElementById() to get a reference to


the specific element:
const demodiv =
document.getElementById("demodiv");

Find its parent via the parentNode property:

const parent = demodiv.parentNode;

Find its children via the childNodes property:

const children = demodiv.childNodes;

Discussion
A web document is organized like an upside-down tree, with
the topmost element at the root and all other elements
branching out beneath. Except for the root element (HTML),
each element has a parent node, and all of the elements are
accessible via the document.

There are several different techniques available for accessing


these document elements, or nodes as they’re called in the
Document Object Model (DOM). Today, we access these nodes
through standardized versions of the DOM, such as the DOM
Levels 2 and 3. Originally, though, a de facto technique was to
access the elements through the browser object model,
sometimes referred to as DOM Level 0. The DOM Level 0 was
invented by the leading browser company of the time,
Netscape, and its use has been supported (more or less) in
most browsers since. The key object for accessing web page
elements in the DOM Level 0 is the document object.

The most commonly used DOM method is


document.getElementById(). It takes one parameter: a
case-sensitive string with the element’s identifier. It returns an
element object, which is referenced to the element if it exists;
otherwise, it returns null.

NOTE
There are numerous ways to get one specific web page element,
including the use of selectors, covered later in the chapter. But
you’ll always want to use the most restrictive method possible,
and you can’t get more restrictive than
document.getElementById().

The returned element object has a set of methods and


properties, including several inherited from the node object.
The node methods are primarily associated with traversing the
document tree. For instance, to find the parent node for the
element, use the following:

const parent =
document.getElementById("demodiv").parentNode;
You can find out the type of element for each node through
the nodeName property:

const type = parent.nodeName;

If you want to find out what children an element has, you can
traverse a collection of them via a NodeList, obtained using the
childNodes property:

let outputString = '';

if (demodiv.hasChildNodes()) {
const children = demodiv.childNodes;
children.forEach(child => {
outputString += `has child ${child.nodeName}
`;
});
}
console.log(outputString);;

Given the element in the solution, the output would be:

"has child #text has child P has child #text "

You might be surprised by what appeared as a child node. In


this example, whitespace before and after the paragraph
Other documents randomly have
different content
—Cherchons un passage entre le précipice et le rocher...
—Soit! Toi, reste là et attends-moi...
—Sois prudent!...
Le malheureux partit avec toute la circonspection nécessaire en
cette difficile occurrence... Tout alla bien d’abord; le sol était plus
compact qu’on ne l’avait supposé au premier coup d’œil, et je me
disposais à le suivre; mais arrivé à peu près à moitié route, c’est-à-
dire à l’endroit le plus étroit, voilà que son pied heurte un grain de
terre qui roule rapide au fond du gouffre... O prodige! ô terreur!
soudain, le fond du précipice semble s’animer; une éruption de
cendre et de sable s’en élève, retombant sur mon brave compagnon
comme une averse pressée...
SOUDAIN LE FOND DU PRÉCIPICE SEMBLE
S’ANIMER.....

Moi-même je reçois quelques éclaboussures et je rétrograde sous


leur impression; mais mon frère, aveuglé, terrifié, meurtri par ces
matériaux qui pleuvent sur sa tête, hésite, chancelle... Il fait des
efforts effrayants pour se retenir... puis il roule au milieu des pierres
et du sable jusqu’au fond du volcan...
Horreur!... Tout en bas, dans le gouffre, je vois deux énormes
pinces pointues, tranchantes, acérées, sortir du sable, s’ouvrir et,
saisissant mon frère infortuné, se dédoubler, le couper et le
découper, lui suçant le sang en un clin d’œil et rejetant sa carapace
vide au dehors...
Un souvenir horrible me revient à la pensée des histoires
racontées à la veillée quand j’étais petit...—le fourmilion!!!...
C’était lui, en effet, qui achevait de dévorer mon pauvre frère.
Il s’agissait pour moi de lui échapper au plus tôt. Quoique je susse
qu’il n’était pas ingambe, je le craignais instinctivement autant qu’il
mérite de l’être, et je m’efforçai immédiatement de sortir du danger
dans lequel je me trouvais. M’éloigner n’était pas facile, enfoncé
comme je l’étais dans le sable mobile.
Cependant j’agis avec précaution, je rampai à rebours, et, malgré
les projectiles qu’il m’envoya, je pus gagner un terrain moins
dangereux et où ma fuite pût s’accélérer.
En m’éloignant je vis au pied d’un arbuste le cadavre d’une
malheureuse fourmi, victime comme mon pauvre frère du terrible
animal.
Je l’avoue, je retournai droit à la fourmilière, autant pour prendre
un repos dont j’avais grand besoin que pour prémunir mes frères
contre les dangers du défilé que j’avais reconnu. Là, je pris des
renseignements sur notre terrible ennemi.
Tout ce que j’en avais entendu raconter jusque-là m’avait semblé
si incroyable, que je n’y avais attaché qu’un intérêt très secondaire,
comme à des contes de bonnes femmes; mais maintenant!...
Or une de mes compagnes m’affirma qu’elle avait vu, du haut d’un
brin d’herbe, le fourmilion se métamorphoser en une sorte de
Libellule, de Demoiselle d’une grande élégance de forme, et douée
d’ailes de gaze transparente sur lesquelles elle partit au travers des
airs... Le fourmilion s’était enveloppé dans un cocon arrondi au fond
de son trou. Soudain, il découpa un trou sur le côté et sortit son
corps à moitié par cette ouverture. La peau de la chrysalide se fendit
alors, et l’insecte parfait en sortit. A peine eut-il fait sa première
aspiration d’air, que son abdomen, qui naguère était court pour
entrer dans le cocon, s’étendit, se gonfla et s’allongea d’au moins
trois ou quatre fois sa longueur. Ses antennes se déroulèrent toutes
seules, comme les ailes... Ma compagne vit tout cela pleine
d’étonnement et sans oser bouger.

JE VIS LE CADAVRE D’UNE MALHEUREUSE


FOURMI.

Le fourmilion est avant tout carnassier. Il nous a voué, à nous, une


haine à mort, ainsi qu’aux autres insectes les plus agiles, tandis que
lui est cul-de-jatte! Aussi est-t-il absolument incapable de chasser
noblement sa proie comme nous: il lui faut une lâche embuscade!
Où se cache-t-il, sinon dans le sable, pour y ensevelir son vilain
corps qui ressemble à une hideuse araignée de jardin! Si faibles sont
ses pattes, qu’à peine il peut marcher, il se traîne...
J’appris ainsi beaucoup de particularités sur le monstre, et j’en
vins à me familiariser avec l’idée de le revoir: je n’en avais même
presque plus peur; aussi je résolus de retourner à la plaine des
sables, d’arriver par un détour en suivant le haut des collines
boisées, et de me placer assez près, de là-haut, pour l’observer à
l’abri et sans danger.
Je partis donc, malgré les remontrances de mes compagnons;
mon caractère décidé et aventureux se dessinait déjà. Hélas! où
devait-il bientôt me conduire? Mais nul ne peut fuir sa destinée!...
Mon projet était bon; j’avoue que les difficultés furent grandes
pour le mettre à exécution, parce que les chemins n’étaient
nullement frayés sur les montagnes, et je courus beaucoup de
dangers à traverser ces forêts vierges. Cependant à cœur vaillant
rien d’impossible..., c’est ma devise. Du haut d’une roche, je
cherchai le théâtre du fatal événement qui avait terminé la vie de
mon frère...
Plus d’entonnoir! A sa place, un bouleversement complet: des
terres éboulées, un chaos en miniature... Mon noble frère avait lutté
jusqu’à la fin, faisant crouler le sable sous ses pieds, s’attachant à
chaque aspérité... Le fourmilion avait abandonné un travail aussi
compromis, et reportant son embuscade un peu plus loin dans le
même défilé, était en train de creuser son entonnoir. Je le vis
travailler, et chaque fois il repoussait la terre dans l’ancien trou, qui
ainsi se comblait grossièrement, peu à peu, de façon à ne pas
interrompre le chemin d’arrivée par ce côté-là.
Le fourmilion commença alors, devant moi, à tracer son entonnoir.
Il aplatit d’abord son abdomen comme un soc de charrue; puis,
rampant à reculons dans une direction circulaire, il traça une
tranchée peu profonde, mais qui marquait un cercle de cinq
centimètres au moins de diamètre. Comment parvient-il à tracer ce
sillon en cercle régulier, à tâtons, puisqu’il marche à reculons?...
C’est un vrai miracle... Une fois le premier cercle fait, les autres ne
sont plus rien; c’est comme le laboureur qui suit son premier sillon.
Toujours est-il que l’affreuse bête reprend un second cercle en
dedans du premier, chassant toujours le sable avec sa tête et le
lançant en dehors de la limite de sa tranchée.
J’étais émerveillé, et je demeurais attentif et immobile, assistant à
ces manœuvres nouvelles pour moi, et me demandant qui avait pu
dire au premier fourmilion: Tu feras comme cela!... Pendant ce
temps, l’ouvrage avançait; les cercles, de plus en plus petits,
devenaient plus profonds, le sable s’en allait en gerbe au delà des
limites, et, tout à coup, je vis le fourmilion se cacher au fond du
trou, dans le sable, et demeurer immobile. C’est pour cela que nous
n’avions rien vu de suspect en approchant du piège où mon pauvre
frère avait trouvé la mort!
Cependant, si nous avions été moins inexpérimentés, nous y
aurions regardé avec plus de soin, et nous aurions aperçu, au fond,
les pointes aiguës des mandibules largement ouvertes de la bête!...
J’avais perdu beaucoup de temps à mon observation, aussi je me
hâtais vers notre fourmilière. Malheureusement, le chemin était long
et le soir se faisait lorsque j’en découvris le faîte; au même moment,
un croassement sinistre s’éleva dans les airs, et un oiseau s’envola
dans la direction de notre nid...
C’était le pic-vert qui chantait sa maraude en regardant le trou
d’arbre où il allait passer la nuit. Au même instant, une de mes
camarades, sortant de dessous une feuille sèche et me barrant le
chemin, m’apprit que, pendant mon absence, le pic-vert était venu
audacieusement attaquer la fourmilière, bouleverser quelques avant-
postes pour introduire dans les avenues sa langue immonde,
chargée de bave gluante, sur laquelle il ramasse les malheureuses
fourmis qu’il touche, puis, retirant le tout dans son bec, les avale...
J’avoue que je ne comprends pas encore comment cet oiseau peut
loger dans son bec une langue aussi longue que son corps.
Cependant, à force de m’informer, je trouvai une vieille, bien vieille
fourmi, qui m’assura avoir jadis mangé un pic-vert tué par un
chasseur qui avait ensuite dédaigné un aussi mince gibier. Or la
vieille m’affirma qu’elle avait mangé de la tête et qu’elle avait vu, en
dedans de la boîte osseuse, la langue de l’oiseau qui s’y enroulait, en
faisant tout le tour, comme du fil dans une boîte.
Je veux bien y croire, mais je n’ai pas vu!
VI

VILLÉGIATURE.—LE TRÉSOR.

Si vous me demandiez compte de mes journées, je vous dirais que


je les laissais passer au milieu des courses les plus charmantes dans
les bois, la lande et les environs. Mes esclaves fonctionnaient
parfaitement: nos larves étaient bien soignées, les bâtiments
entretenus en bon état, la saison douce et clémente; jamais je ne
fus si heureux, aussi chaque matin imaginai-je une excursion
nouvelle.
C’est ainsi que je découvris les fourmis charpentières, que je ne
connaissais pas, et auxquelles on donne, je crois, le nom latin de
Formica fuliginosa. Leurs travaux sont merveilleux et bien autrement
considérables que ceux de plusieurs autres insectes charpentiers que
j’avais vus à l’œuvre, et cependant, de même que les guêpes et les
abeilles charpentières, elles n’ont pour outils que leurs mandibules.
Mandibules toutes simples et qui n’approchent cependant ni de la
construction de la tarière ou lime des Cicadées, ni de la scie des
Tenthrédinés.
Ces petites charpentières ont l’air, au contraire de nous, d’être un
peuple de nature inférieure et qui ne connaît de plaisir que travailler.
Elles sont dans un mouvement perpétuel: il est vrai que la vie doit
être si pénible pour elles, que je ne puis que les plaindre de s’entêter
à se cacher comme elles le font dans le bois des arbres, au lieu de
se faire bâtir un palais au grand air par des esclaves asservies.
Je m’approchai de la porte, histoire de parcourir l’intérieur de ce
logis d’une nouvelle espèce. Je n’avais aucune mauvaise intention,
mais voilà une sentinelle qui me barre le chemin. Ce serait une
erreur de ne pas les croire courageuses et fortes pour leur taille.
Comme je ne voulais pas lui faire de mal, je la prends
délicatement par la taille et, la faisant passer par-dessus ma tête, je
la jette tout bonnement derrière moi... Ah bien! ce fut alors
l’occasion d’un tapage infernal. En moins de rien, j’en avais dix, vingt
sur les bras! Au loin le rappel battait, je vis bien que j’allais avoir
toute la séquelle après moi...
Je voulus parlementer: impossible; ces forcenées parlaient un
patois informe et n’entendaient pas raison. Je ne pouvais pas,
décemment, reculer devant de tels pygmées avant d’avoir vu ce que
je voulais voir. J’en pris donc, un peu brusquement, une demi-
douzaine l’une après l’autre et les envoyai, à la volée, rejoindre la
première...
J’avançais toujours au milieu de la multitude qui me pressait de
toutes parts et j’atteignis ainsi le fond du vestibule; mais là une
amère déception m’attendait... la porte était trop petite pour moi!...
Ce n’est pas étonnant, ces peuples bornés n’ont pas l’habitude de
recevoir des gens de notre importance!
Je rétrogradai donc noblement, non sans avoir jeté un coup d’œil
prolongé sur l’intérieur de l’habitation par la porte et par les fenêtres
du premier étage, auxquelles j’atteignais très facilement.
Le peuple me suivit quelques pas en dehors de la souche du saule
dans laquelle la république était établie, mais je m’arrêtai, et tous se
hâtèrent de rentrer: ils craignent et le grand jour et le grand air.
Néanmoins j’avais acquis quelques connaissances de leur
organisation.
D’un côté, je découvris des galeries horizontales, mais le regard
ne pouvait en embrasser longtemps le développement, parce que les
murs suivaient la direction circulaire des couches du bois, et, d’un
autre côté, parce que les galeries parallèles étaient séparées par de
très minces cloisons n’ayant de communications entre elles que par
de rares ouvertures ovales. Je dois avouer que ces travaux étaient
remarquables par leur délicatesse et leur légèreté.
Au premier, j’avais eu le temps d’apercevoir des chambres
séparées, faites dans les galeries au moyen de petites cloisons
transversales élevées çà et là. Je vis des portes préparées par un
trou rond encaissées entre deux piliers découpés dans le mur. Mais,
plus loin, les sculpteurs étaient à l’œuvre: les piliers, à l’origine
courbés aux deux bouts, devenaient des colonnes régulières. Ce qui
me semble le plus remarquable à cet étage, c’est la manière dont
sont ménagés les piliers qui doivent le supporter et qui sont pris
dans les cloisons des galeries parallèles, que l’on réunit pour faire
une grande halle.
Ce qui m’a étonné au dernier point, c’est que tout le bois que ces
fourmis taillent est teint en noir, comme par de la fumée. D’où cela
vient-il?... Ma foi, je n’en sais rien. Est-ce un gaz émané des
fourmis? Est-ce une teinture fournie par leur salive?
Depuis quelque temps déjà j’entendais résonner des pas
d’hommes autour de moi, car nous avons l’oreille si fine que nous les
entendons, ainsi que les autres animaux, bien avant qu’ils puissent
nous apercevoir. Je me retourne et j’aperçois deux hommes qui
semblent chercher des yeux quelque chose dans le bois, regardant
sur le sol, comptant un certain nombre de pas dans des directions
différentes.
—Peste soit du vieux podagre, dit l’un, il avait perdu la tête de
frayeur, et nous ne retrouverons jamais rien!...
—Qui sait? reprend l’autre, il n’était pas si sot que vous le croyez.
—Peuh! prendre pour indice un arbre, c’est déjà stupide.... Il peut
être coupé... mais ne pas le marquer, ne pas le désigner d’une
manière sûre, c’est insensé!
—Le fait est...
—Où veut-il, à présent, que nous trouvions son arbre?...
—C’est vrai,... cela n’est pas facile...
—Pas facile!... Impossible! voulez-vous dire. Il y en a dix ici qui
répondent au signalement voulu.
—Remuons un peu ces buissons...
—Ah!!!...
—Quoi?...
—Le tapis!!!...
—Quel tapis?
—Le voilà!!! Les fourmis l’ont amené à la surface du sol!!!
—Quelle chance!...
Je me hâtai de rentrer à la fourmilière, car le soir venait à grands
pas, mais le repos ne vint point pour moi.
A peine la nuit fut-elle faite, que des coups violents éveillèrent les
échos des bois, notre maison vola en éclats, la pelle et la pioche
fouillaient notre belle construction si laborieusement élevée... Les
larves chargées sur nos esclaves furent le précieux bien qu’on
chercha à sauver.
Vous eussiez vu nos fidèles esclaves courir de tous côtés, au
milieu de la nuit, s’aidant les unes les autres, s’efforçant de mettre
en lieu sûr l’espoir de notre race. Oh! la terrible nuit!... Quel
lamentable spectacle, que ces pauvres insectes fuyant éperdus sous
les rayons blafards de la lampe des chercheurs!
—Ah! les maudites fourmis! disait l’un, comme elles mordent!
—Plains-toi donc! sans elles, tu n’aurais jamais trouvé notre
affaire.
—C’est égal, elles pincent comme des diables. Au fait qu’est-ce
que cela leur importe la monnaie du grand-père!...
—Mais leur nid que tu bouleverses, leurs larves que tu détruis...

La reine des termites.

—Haie!... haie!... Tape et dur!...


Bientôt, sous les éclats de la lanterne, sortirent de terre, au milieu
d’une admirable nappe de damas or et soie cramoisie, une cassette
et des vases d’argent admirablement ciselés... Tout cela brillait dans
l’ombre noire du bois et de la nuit, c’était magnifique!
—As-tu la clef du bonheur?
—La voilà, frère!
—Donne!... Par Dieu, grand-père avait eu une fameuse idée de la
laisser dans sa chambre avec son manuscrit.
Il ouvrit la cassette, l’or et les diamants ruisselaient sous ses
doigts.
—C’est bon, referme-la et partons!...
Ils refermèrent précipitamment la cassette, enveloppèrent le tout
dans la nappe de tabis, puis la nappe elle-même dans un de leurs
manteaux, éteignirent la lanterne et disparurent dans la lande.
VII

LES TERMITES.—LA REINE.

Le lendemain matin, je me trouvai dans un hôtel antique de


Rochefort, où les deux frères étaient rentrés.
Enveloppé la nuit dans la nappe de tabis, je n’essayai pas de me
regimber: c’eût été inutile. Je me laissai emporter, m’abandonnant à
mon étoile, et ce fut là le commencement de mes voyages.
J’étais à Rochefort, toute voisine de la préfecture, et dès que les
chercheurs de trésor eurent déposé leur fardeau dans une chambre
où ils l’emportèrent, je sortis de ma cachette et me hâtai de gagner
un endroit abrité où je pusse prendre un peu de repos. Je trouvai un
excellent refuge dans le coffre à bois sur lequel le tabis avait été
déposé contenant son précieux dépôt.
Cependant une odeur singulière, perceptible seulement pour nos
organes délicats, me semblait remplir toute la pièce: et j’entendais
autour de moi comme un frémissement particulier accompagné de
petits coups répétés qui me donnèrent beaucoup à penser. Dans
quel coupe-gorge étais-je tombé?
Je m’assoupis, néanmoins, appuyé à une bûche, et je ne sais si je
rêvai, mais il me sembla que j’entendais couler quelque chose ou
passer quelqu’un dans la bûche, comme si son intérieur eût été
habité. Je me promis d’examiner le lendemain ce qui avait pu me
donner cette singulière illusion et finis par m’endormir tout à fait...
non sans avoir longtemps attendu le silence de la nuit; silence qu’on
sent venir, monter, à mesure que l’ombre devient plus complète. Ce
fut tout le contraire: plus la nuit se fit, plus le bruissement, le
frôlement s’accentua, non seulement dans la bûche à laquelle je
m’appuyais, mais encore dessus, dessous, tout autour de moi...
Au jour, tout s’assoupit et devint silencieux!
C’était le moment de m’enquérir de la cause de tout ce que j’avais
entendu. Je courus, j’inspectai; je ne vis rien... rien! Partout cette
odeur de bêtes que j’avais sentie la veille! Enfin, je sortis du coffre à
bois et, remontant sur la fenêtre, je profitai d’un pied de vigne pour
descendre commodément dans le jardin. J’y fis un abondant
déjeuner de quelques fruits tombés, et toujours l’odeur que j’avais
remarquée me poursuivait...
Cependant je ne voyais rien d’extraordinaire. Je résolus de
descendre dans de belles caves dont l’escalier s’ouvrait devant moi.
—Ça des caves? me dis-je en avançant avec précaution; ce sont
des grottes naturelles. Je vois des stalactites, et voici, le long du
mur, des colonnettes engagées de matière calcaire...
J’examinais curieusement ces sortes de pilastres, quand mon
oreille y perçut le même bruissement que dans la bûche de la boîte
au bois... Je reculai vers un coin sombre pour m’arrêter à réfléchir.
Comme j’en approchais, je vis s’élever devant moi une fourmi—je la
reconnus de suite—mais d’une espèce différente de toutes celles que
je connaissais jusque là dans le pays.
—Qui vive? me dit-elle.
—Ami! répondis-je.
—Ami? Tu es fourmi, cependant?
—Oui, Polyergue rougeâtre; et toi?
—Moi, Termite Lucifuge...
QUI VIVE?—AMI!

—Ah! ah! J’ai entendu parler de vous...


—C’est bien... Que viens-tu faire ici?
—Je me promène et ne veux vous attaquer en aucune façon.
—Tu as bien raison. Regarde seulement mes pinces, elles te
couperaient en deux comme un sabre coupe un navet. Tu dois voir
que je suis un soldat de la termitière et que je suis plus fort que
toi...
—Qu’est-ce que cela me fait? Si vous m’attaquez, vous me
couperez en deux probablement; mais vous ne m’empêcherez pas
de vous inoculer au même moment mon acide, et vous en mourrez
demain! Ne vous y frottez donc plus! Voulez-vous, au contraire, me
recevoir en ami? Je voyage, je m’instruis, je suis inoffensif et peux
vous donner quelquefois un coup de main ou un conseil.
—Moi!... je me moque de ce que tu peux valoir. Je suis un soldat,
et, comme tel, je n’ai point à raisonner sur le que, le qui ou le
pourquoi. Je suis un sabre obéissant, voilà tout! et je m’en fais
gloire!...
—Sabre obéissant, tu me donnes une furieuse envie de visiter ta
nation; n’existe-t-il donc pas une autorité chez vous, à laquelle tu
puisses soumettre ma demande?
—Si, le grand conseil.
—Eh bien, sabre obéissant, mon ami, va lui demander, pour un
philosophe, la permission de visiter votre république... C’est mon
plus cher désir.
—Soit, attends-moi ici! Et surtout ne t’éloigne pas, il pourrait
t’arriver malheur! Il y a des sentinelles partout, et toutes n’auront
pas tant de patience et de bon vouloir que moi...
—Merci du conseil.
Il disparut. Je m’assis et l’attendis, assez intrigué de la tournure
que prenaient les choses, étudiant un peu le terrain autour de moi et
décidé à prendre une fuite rapide si la négociation ne réussissait pas.
Je prévoyais que mon ami le sabre obéissant me tomberait dessus
avec un ensemble parfait.
Il n’en fut rien. Au contraire, permission de visiter me fut octroyée
de la meilleure grâce. On m’invitait même à présenter une requête
au couple royal, et l’on adjoignit au sabre obéissant un autre sabre
encore plus gros et plus solide pour m’accompagner partout, afin
qu’entre ces deux sabres je ne courusse aucun danger de la part de
la populace.
—Quand vous voudrez, seigneur, me dit le premier sabre en
s’inclinant.
—Peste! pensai-je en moi-même, nous ne nous tutoyons plus!
C’est tout à fait grand genre! Ce que c’est que la faveur!...
Nous tournons la colonne la plus voisine et, dans le coin le plus
noir, j’aperçois une porte qui s’ouvre; j’avance... Cette porte, c’est la
tête monstrueuse d’un soldat qui la forme, et qui, fermant le trou,
est de la même couleur que le mur environnant, et rend impossible
de dehors et dans l’ombre de rien distinguer. Le soldat retire sa tête.
Nous entrons... Nous sommes dans une magnifique galerie d’au
moins un centimètre et demi de haut, longue à peu près d’autant,
polie comme du silex, et bâtie en mortier superbe. Partout autour de
nous un peuple immense, montant, descendant en ordre, sans
trouble, les uns à droite, les autres à gauche. C’est ainsi que nous
arrivâmes à une place spacieuse: plusieurs ouvertures régnaient au
pourtour de cette place et donnaient accès dans des chambres à
voûtes surbaissées, assez spacieuses pour contenir trente à quarante
ouvriers. J’entrevoyais, au fond de ces pièces, encore d’autres portes
très basses, qui donnaient évidemment accès dans d’autres
appartements intérieurs; cette fois, ces portes étaient beaucoup plus
basses, mais toujours larges, et cinq ou six ouvriers pouvaient
partout passer de front.
A peine mes gardes du corps furent-ils entrés sur la place, qu’ils
commencèrent à se trémousser de tout leur corps et à frapper le sol
de leurs pinces. Aussitôt tous les termites présents firent comme
eux, agités de trémoussements et frappant la terre de leurs
mandibules. Je reconnus, à ce moment, le frémissement et les petits
coups que j’avais entendus au commencement de la nuit. De tous
côtés, autour de nous, c’était une activité fébrile qui semblait
pousser les individus. Personne au repos, tout le monde travaillant,
mais tout ce travail organisé sans trouble, sans embarras: je
reconnus que là, comme chez nous, chacun savait ce qu’il avait à
faire et l’accomplissait en conscience.
C’est d’autant plus méritoire chez ce peuple, que les termites ne
sont point de la même espèce que nous, ni même du même genre,
ni même de la même famille: c’est ce qui m’explique pourquoi leur
odeur m’était pénible et m’avait si désagréablement frappé. Les
termites sont d’un ordre voisin, mais différent du nôtre. Nous, nous
appartenons aux Hyménoptères, avec les abeilles, les guêpes, les
frelons, etc.; eux, appartiennent aux Névroptères, avec les
demoiselles, le fourmilion, notre ennemi, et bien d’autres...
Cependant nous montions toujours, de galerie en galerie, de
chambre en chambre, et la promenade ne semblait pas près de finir;
mes gardes du corps marchaient à mes côtés avec la régularité de
balanciers de pendule: ils allongeaient les jambes et me fatiguaient
horriblement.
—Cher sabre obéissant, dis-je à mon compagnon, le premier
soldat, qui trottait toujours, allègre, à mes côtés, où allons-nous, s’il
vous plaît? A force de marcher au milieu de l’obscurité presque
absolue où nous sommes, je perds le sentiment des distances. Il me
semble cependant que nous avons dû parcourir plusieurs kilomètres;
je me sens écrasé...
—Vraiment, mon ami Polyergue! vous n’êtes cependant pas au
bout de vos peines. Nous pourrions trotter trois jours comme nous le
faisons, que vous n’auriez pas encore parcouru tous nos domaines...
—Grand Dieu! mais où allez-vous donc?...
—Ah! visiteur curieux, persuadez-vous bien qu’il y a la même
différence entre une fourmilière et une termitière que, chez les
hommes, entre une chaumière et une cathédrale.
—Vous êtes modeste.
—Je suis juste, tout au plus. Songez que nous occupons toute la
préfecture, depuis le haut jusqu’au bas. Toutes les poutres, tous ce
qui est en bois dans l’hôtel, est maintenant notre domaine. Nous
avons même, comme ici, rencontré des aubaines imprévues qui nous
ont permis de nous créer de spacieuses chambres de réunion. Nous
sommes ici dans le carton no 16 des archives du département, et...
—Quelles belles voûtes!
—N’est-ce pas?... Oh! c’est que nous savons parfaitement nous
arranger. Nous avons mangé tout l’intérieur des paquets, et ce que
nous avons laissé, c’est l’enveloppe extérieure et le bord des feuillets
pour nous tenir cachés; car vous savez que les hommes nous ont
baptisés Lucifuges. Ils ont eu raison, car nous ne pouvons pas
souffrir la lumière.
—Vous trouvez tout à la fois, ici, le vivre et le couvert.
—Certes; malheureusement, cette belle provision tire à sa fin.
Dernièrement nous avons découvert, au fond d’un des cartons en
exploitation, des crayons. Ma foi! nous les avons mangés: bois, mine
et tout... C’était fort bon!
—Je le crois.
—Chut! taisez-vous... Il est inutile de causer une émeute de
curiosité dans le sanctuaire où je vous conduis. Au milieu de vos
gardes du corps, vous passerez à peu près inaperçu et j’aurai rempli
mon mandat.
En ce moment, nous nous mêlions à une grande foule de peuple
que je pouvais estimer à plusieurs milliers d’individus au moins: ils
tournaient tous dans le même sens autour d’une admirable et
énorme salle bâtie dans un des plus grands cartons. C’était la
chambre de la reine, de la mère, comme vous voudrez!
Le spectacle le plus étrange se présente alors à nos yeux; il n’était
pas sans analogie avec ce qui se passe chez nous, mais dans des
proportions si gigantesques, que j’en demeurai frappé de stupeur!
Au milieu de la chambre gisait un être immense, incroyable, dont la
tête, le corselet, me semblèrent assez semblables à ceux des autres
termites, mais dont l’abdomen est prodigieux, indescriptible... La
reine était déjà vieille, d’après ce que j’appris, et, comme son
abdomen grossit sans cesse, celui-ci atteignait quinze centimètres de
longueur!... Il était au moins deux mille fois plus gros que le reste de
son corps!...
Ce sont là des dimensions dont vous n’avez aucune idée, vous
autres hommes. Votre constitution étriquée et non élastique ne vous
rend pas capables d’un développement semblable. Me comparant
aux termites, je calculai que la reine devait peser autant que trente
mille des ouvriers qui circulaient autour d’elle. Véritable montagne,
elle a perdu ses ailes et ne peut faire un pas: elle est là, sur le
ventre, ayant à côté d’elle le roi, qui a perdu ses ailes, lui aussi, mais
n’a changé ni de forme, ni de dimension, et se borne à remplir les
fonctions de mari de la reine.
Les travailleurs et les soldats font assez peu attention au roi, mais
tous s’occupent de la reine. Les uns lui donnent à manger, les autres
sont occupés à enlever sans cesse les œufs qu’elle pond sans
interruption, et cette fécondité est, à mes yeux même habitués à ce
spectacle, merveilleuse. D’où j’étais placé, je voyais, comme d’une
sorte de tribune, que cet immense abdomen n’était qu’un vaste
ovaire dont les branches multipliées renferment en si grand nombre
les germes en voie de développement qu’il s’en trouve toujours un
de mûr. A travers la peau amincie et devenue transparente, je voyais
très bien les canaux sans cesse animés de mouvements de
contraction, tantôt sur un point, tantôt sur un autre.
Grâce à cette merveilleuse conformation, la reine pond, sans s’en
apercevoir probablement, au delà de soixante œufs par minute,
c’est-à-dire plus de quatre-vingt mille par jour! Cela toutes les
secondes, aussi régulièrement qu’une machine.
Cette myriade d’œufs, promptement recueillis par les travailleurs,
sont emportés dans des couvoirs. Il en sort bientôt des larves d’un
blanc de lait qui sont soignées avec tout le talent des nourrices les
plus dévouées. Ce que je trouvai de plus curieux, c’est que, en
redescendant dans les caves où sont disposés ces couvoirs, j’aperçus
que les parois des murs étaient préparées par les termites ainsi que
de vraies plates-bandes de jardin, en vue de la nourriture de leurs
larves.
Grâce à la chaleur humide qui règne dans ces réduits et que les
termites savent entretenir, partout poussent sur les cloisons, sur les
murs, des champignons microscopiques, des moisissures qui forment
un aliment spécialement approprié aux premiers besoins des
enfants. Si les termites appartenaient à la noble et intelligente nation
des fourmis, je serais porté à croire qu’ils ont assez d’esprit pour
semer eux-mêmes les champignons, et je me serais enquis de la
manière dont ils s’y prennent. Mais comment penser que des êtres
qui appartiennent à la grossière famille dont les fourmilions font
partie peuvent posséder les instincts épurés et nobles des
agriculteurs?
Quant aux évolutions des mâles et des femelles, des ouvrières,
elles sont tout à fait semblables à ce qui se passe chez nous. Aussi
passai-je rapidement devant les logements des termites de ces
diverses catégories, et je parvins à regagner la porte sur l’escalier.
Arrivé là, le soldat-portier voulut bien retirer sa tête, et je pris
congé de mon ami le sabre obéissant, ainsi que de son compagnon.
Je fus vraiment content de respirer un peu d’air frais sur l’escalier et
de voir la lumière du jour en remontant dans le jardin, d’autant plus
que la nuit allait venir bientôt et qu’il me fallait chercher à souper.
Hélas! tout semblait dévoré dans le jardin; je n’y trouvai donc pas
grand’chose, même ce qu’il faut à une fourmi!... Plus de fruits, tout
avait été mangé pendant la journée par divers animaux, gros et
petits. Que faire? Se coucher sans souper...
Je m’y résignai... de force! et me promis bien, le lendemain, dès
l’aube, d’aller marauder sur le port, certain d’avance d’y faire ample
curée.
VIII

LES MONSTRES NOCTURNES.—DANS UN CURE-DENT.

Le sucre ne manquait pas sur le port de commerce, car je me


gardai bien d’aller perdre mon temps sur le port militaire: les
boulets, les canons et le reste formeront toujours un piteux régal
pour les fourmis! Me voilà donc attablée aux environs de gros sacs
qu’on chargeait et déchargeait autour de moi. Je m’étais mise à
l’abri, près d’un des pieds de la balance, et là j’attrapais toujours
quelque bonne aubaine qui roulait des sacs pesés jusqu’à moi.
Cet état d’abondance dura plus d’une semaine. Par malheur, ce qui
était vraiment fort désagréable, c’est qu’une grande quantité
d’autres bêtes, attirées par le sucre, venaient me disputer ma
nourriture et se montraient souvent si dangereuses pour moi, que
j’abandonnai la place. Enfin, je découvris, dans une de mes courses,
le passage par lequel les matelots arrivaient, apportant sur leur dos
les gros sacs de sucre; c’était une sorte de planche large qui passait
au-dessus de l’eau. C’est ainsi que j’arrivai à la source même du
sucre!
Quelle chance! Là, du moins, j’étais en sûreté. Là, bien mieux, on
peut manger à bouche que veux-tu? Aucun besoin de se gêner: le
sucre est partout! La paroi elle-même de la chambre dans laquelle je
me trouvais est tellement sucrée qu’elle en est imprégnée: en la
léchant, on vit!
—Allons! nous passerons quelque temps dans cette agréable
résidence; après, nous verrons.
Et je m’installai là commodément, entre des objets arrimés avec
soin, comme disaient les matelots.
C’est ainsi que je passai une quinzaine de jours sans être
dérangée. A peine entendis-je passer quelques hommes: la maison
semblait tout à fait abandonnée; mais, un beau matin, on fit un
tapage terrible. Ce n’étaient que ballots, que barriques qui tombaient
ou descendaient dans la chambre que j’habitais et l’encombraient de
toutes parts. Vingt fois je manquai d’être écrasée!
Enfin, le bon Dieu eut pitié de moi et le calme se rétablit presque
aussi complet qu’avant; seulement, tout était plein et il ne faisait
plus jour. Décidément, la place n’était plus tenable; je résolus d’en
changer. Que diable! Je trouverai bien sur le port un asile où je
jouirai, au moins, de chaleur, de lumière et même d’un peu de
tranquillité...
Aussitôt dit, aussitôt fait! Je me mets en route. J’avise une belle et
grosse corde qui pendait; je m’élance, la suis, et me voilà au jour en
passant entre elle et la planche qu’elle traverse. Quelle belle lumière!
quelle bonne brise rafraîchissante! Mais quelle singulière odeur!...
Où suis-je?... Je n’en sais absolument rien.
C’était bien le cas de grimper à de grandes échelles qui montaient
en l’air... Je le fis, et j’arrivai au sommet d’un mur de bois, d’où l’on
voyait tout autour.
De l’eau!..... Rien que de l’eau!..... Partout de l’eau!!!
Ce devait être la mer...
Ma maison était un navire!!...
Malheureuse! J’étais perdue à jamais pour la France. O mon pays!
ô ma patrie! Mais quel remède?
Aucun! il fallait subir la mauvaise destinée que mon imprévoyance
et mon étourderie m’avaient préparée. Allons! le mieux encore est
de faire contre fortune bon cœur!... Vivent les voyages! puisque je
ne puis reculer.
Je me garai dans un coin, j’observai et j’écoutai.
Deux matelots causaient non loin de moi.
—Tu as été au Para, toi?...
—Au Para? me dis-je. Au Para?... Qu’est-ce que cela peut être?
—Parbleu! c’est la quatrième fois...
—Ah! répondit l’autre en faisant la moue...
—Mais, oui, ma vieille! Même qu’on y est très bien!
—Y a-t-y du rack?
—Il y a du rack.
—Ah!...
—Et mon voisin fit encore la moue... Mais voilà qu’il porte la main
à sa bouche et en retire... ce qui lui faisait faire une si belle moue...
C’était sa chique, qu’il plaque philosophiquement sous le bordage,
pour la retrouver au besoin...
—Et y a des fruits de toutes les couleurs... puisque c’est en
Amérique...
—Ah! c’est en Amérique...
Cette nouvelle me fit fuir immédiatement.
—Comment! nous allons en Amérique! dis-je; en Amérique!
Imprudente, que vas-tu devenir? Vit-on jamais fourmi s’engager
dans des aventures semblables?... et ne vas-tu pas perdre la vie au
premier pas? Quelle désastreuse équipée!... Enfin, il n’y faut plus
penser... Le mal est fait. Songeons à nous mettre en sûreté...
JE ME RABATTIS SUR LES FENTES.

Je m’acheminai vers la cale, car c’était là où j’avais été surprise


par le départ du navire; c’était là où se trouvaient les provisions qui
m’avaient séduite; c’était là où je pouvais espérer une nourriture
abondante et en même temps une retraite capable de me cacher. Je
furetai donc dans tous les coins pour trouver une demeure; mais,
chose extraordinaire! tous les coins étaient occupés... Partout je
voyais d’horribles mandibules s’ouvrir à mon approche. Quel animal
si hargneux était donc là?...
Je me rabattis sur les fentes... Partout, partout, je rencontrais les
mêmes mandibules menaçantes, surmontées des mêmes yeux
féroces, qui me faisaient frissonner jusqu’aux moelles.
Heureusement, pas un de ces êtres hideux ne bougeait. Désespérant
de trouver mieux, je m’enfonçai dans la muraille du navire, à la place
d’un petit clou qu’on avait arraché. J’y étais fort mal: la cavité était
profonde, mais si exiguë que j’avais été obligé d’y entrer à reculons.
Ce fut ce qui me sauva.
A la nuit commença autour de moi un branle-bas incroyable,
inimaginable... Le navire sembla s’animer: l’espace s’emplit de
formes noires et brunes, hideuses, énormes, qui volaient
lourdement, se heurtant aux murs et aux poutres, qui couraient
comme lévriers déchaînés le long des arêtes des poutrelles, et
venaient, horreur! sentir et souffler à la porte de ma retraite...
Ils étaient là au moins une douzaine, gros, moyens ou petits, se
poussant, se glissant les uns sur les autres pour arriver à me dévorer
des yeux; ils allongeaient au dedans pattes, mandibules et
antennes... et moi, je me reculais aussi loin que l’espace me le
permettait. Pendant ce temps, de gros animaux poilus rugissaient en
galopant sur toutes les matières qui remplissaient le navire. Ils se
battaient affreusement, bousculant tout sur leur passage. Je n’avais
jamais vu des animaux semblables; certains d’entre eux étaient
presque aussi gros que nos voisins les lapins de la lande.
Ah! quelle horrible nuit! Combien de fois les terribles bêtes, se
poussant avec une conviction féroce, avaient-elles avancé leurs
griffes presque à me toucher! Je sentais que, si leurs serres
m’atteignaient, c’en était fait de moi. J’étais arraché de ma retraite
et croqué d’une bouchée...
Quelles angoisses!
Enfin, le matin parut, et, avec lui, des matelots vinrent ouvrir un
des panneaux qui fermaient la cale. Une brillante clarté inonda notre
retraite et me rendit un peu de courage. Nous autres Polyergues ne
savons combattre qu’au grand jour.
Avançant la tête avec précaution, je vis que toutes les bêtes
puantes qui m’avaient si furieusement assiégé rentraient dans leurs
fentes, leurs trous, se cachaient à l’abri du jour derrière tous les
objets qu’elles rencontraient.
—Ah! elles ont peur du jour! dis-je. Moi, c’est le contraire; il faut
profiter de cet avantage, il faut fuir... Fuir? où fuir?...
L’occasion est chauve, dit le proverbe: je me précipitai à toutes
jambes au travers des obstacles: je volais!! Mais, au moment où je
me croyais bien seule, un de ces animaux enragés saute du plafond
sur les sacs où je courais de toutes mes forces, et se met à ma
poursuite avec une vitesse surprenante...
—O Seigneur! Tous ne craignent donc pas le jour...
J’étais abasourdi...
Au premier moment, je désespérai de moi, je me sentis perdu,
j’hésitai si je fermerais les yeux, attendant stoïquement la mort...
—Un effort de courage!!... Pourrais-je le faire?
—Oui!!... je le ferai. Il ne sera pas dit qu’un foudre de guerre chez
les siens, qu’un Hercule au grand cœur se laissera lâchement
égorger comme un mouton!...
Cependant mon ennemi chevauchait sur ses grandes pattes et
gagnait du terrain à vue d’œil... Dans mon trou j’étais, hélas! à
l’abri; tous étaient trop larges pour pouvoir y pénétrer; mais à
présent j’étais isolé, à découvert... et je fuyais à toutes jambes,
quand, soudain, une fissure se rencontre devant moi. C’était la porte
du panneau que les matelots avaient renversée sens dessus
dessous. Comme elle était bombée, je m’y glisse et m’avance aussi
loin que me le permettent et ma taille et ma frayeur.
Hélas! mon ennemi était bien plat, plus encore que je ne me le
figurais... Il arriva très près de moi, mais pas assez pour m’atteindre.
Je me faisais si petit! J’étouffais, mais, jouant des coudes et des
pattes, je fuyais toujours, lentement, mais enfin je m’éloignais. Lui,
plus empêché que moi, perdait du terrain, et d’ailleurs nous
approchions des bords du panneau, sur lesquels frappait le plein
soleil. Déjà je sentais la chaleur bienfaisante de l’astre du jour qui
doublait mes forces.

UNE FOURMI DE FRANCE!!...


Je sortis au galop sur le pont, et, voyant une porte entr’ouverte
devant moi, je m’y précipitai.
Il était temps! La bête sortait de dessous le panneau...
Alors, elle retrouva ses ailes, auxquelles je ne pensais plus, fit un
bond effroyable et me chercha, car, éblouie, elle m’avait perdu de
vue...
J’avoue que je ne perdais pas mon temps! Au hasard, je montais
le long du pied de la table qui me cachait à elle et bientôt je
débouchais au milieu de papiers, de plumes, de crayons, sur le
propre bureau du capitaine.
Horreur!... la bête est devant moi...
J’étais perdu, cette fois, quand un cure-dent en plume s’offrit à
moi... M’y précipiter fut l’affaire d’un clin d’œil...
J’étais du moins à l’abri...
Comment peindre les efforts désespérés du monstre pour me
forcer à sortir de ma retraite?... Voyant qu’il avait beau me faire
rouler avec ma prison transparente et que je n’en sortirais pas, il se
mit à en ronger les extrémités coupées en biseau. Je voyais ses
mandibules arracher des lambeaux à chaque extrémité... Ah! il y
allait de bon cœur!
Un bruit se fit entendre, mon ennemi s’envola...
Le capitaine entrait dans son cabinet. Il se mit à son bureau et,
s’asseyant, appuya sa tête entre ses deux mains et se prit à songer.
Pensait-il à sa mère, à sa fiancée, à ses plaisirs passés, à ses devoirs
présents? Le savais-je?
Tout à coup ses yeux tombèrent sur moi.
—Une fourmi de France! s’écria-t-il, et, saisissant le cure-dent, il le
tint devant ses yeux.
—Pauvre petite bête! Quelle idée t’a prise de venir avec nous au
Brésil?...
—Tiens! pensai-je à part moi, c’est bon à savoir. Nous allons au
Brésil...
—Par quel singulier concours de circonstances es-tu réfugiée dans
un cure-dent de plume? Une poursuite, peut-être... Qui donc t’a
poursuivie?...
Et, considérant les bords de mon cure-dent, où mon terrible
ennemi avait si vaillamment aiguisé ses dents:
—Les cancrelats!... Les affreuses bêtes! Maudite engeance! Oh!
pauvre petite compatriote, je te défendrai: va! tu ne seras pas
mangée par eux, n’aie plus peur!...
Alors, se levant, le bon capitaine atteignit un compotier de verre
dans lequel il versa du sable bleu qu’il avait sur son bureau, mit par-
dessus mon cure-dent, ajouta autour une ou deux pincées de sucre,
quelques pruneaux. Cela fait, il replaça le couvercle de cristal, puis...
—Chère petite bête! dit-il alors, reste avec moi. En te voyant tout
à l’heure sur ma table, j’ai songé à mes jeunes amies. Demain
encore, en te voyant, je penserai à cela!... Ah! la vie! quel triste
passage!...
Le capitaine ouvrit brusquement la porte de sa cabine, et
j’entendis ses pas s’éteindre en s’éloignant...
J’étais prisonnière!...
Mais, du moins, mon ennemi et sa terrible séquelle ne parviendrait
jamais jusqu’à moi. J’étais en sûreté!
De longs jours s’écoulèrent ainsi en compagnie de mon bon ami le
capitaine, dont l’affection ne se lassa jamais. Tous les matins il
venait causer avec moi ainsi qu’il le disait, mais en réalité causer
avec lui-même et caresser de chers souvenirs. Quel cœur d’or! quels
admirables sentiments! En général, l’homme est un long, lent et
lourd animal qui nous déteste et dont nous nous rions par notre
nombre et notre adresse; mais maintenant j’en connais un, dans le
nombre, qui ne peut s’empêcher d’aimer. C’est le capitaine Urbain.
En somme, la traversée fut admirable. A peine un grain ou deux
en varièrent un peu la monotonie.
Nous étions arrivés, et mon brave ami ne se départait pas de ses
bons soins. Une fois, cependant, il manqua à son rendez-vous
ordinaire; un jour s’écoula sans qu’il vînt renouveler mes provisions.
Un second jour s’écoula lentement, sans sa visite... Où était-il mon
Dieu?... malade?...
Un troisième jour passa... Mes provisions étaient épuisées. Les
reliefs que je dédaignais dans l’abondance, je les avais tous
consommés! Plus rien!... Il viendra demain...
La faim me torturait... Mourir! mourir! Ce mot me tintait
lugubrement aux oreilles... Et il ne vient pas!...
Je contemplais, pour la centième fois, les alentours de ma prison
de verre: partout le silence et le désert! Lorsque, levant les yeux au
plafond, il me sembla voir que le couvercle du compotier, placé un
peu de côté, par mégarde, ne fermait pas exactement, et que je
pourrais peut-être me glisser par l’ouverture...
Mais comment monter là?...
A l’œuvre! Il faut essayer...
Je pris, à brassées, les détritus de fruits qui remplissaient ma
prison, queues en bois immangeables, pelures, pepins, épluchures
sèches, dures comme le fer, et je les enchevêtrai. Je les accumulai
de la manière qui me sembla la plus solide. J’étais fort et j’avais reçu
de bonnes leçons dans mon enfance. Je travaillai ainsi dans les
angoisses de la faim, avec un acharnement sans égal. Il fallait
vaincre ou mourir!...
Je vainquis... Je passai!...
Et tombai sur la table presque inanimé.
Heureusement, un pain à cacheter qui se trouva à côté de moi me
permit de ranimer mes forces. Je tombai dans un porte-crayon et,
aux premiers rayons du soleil, je me mis en quête d’un moyen de
sortir du cabinet.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like