forked from PhilippeSigaud/D-templates-tutorial
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
09a9971
commit d248431
Showing
1 changed file
with
1 addition
and
47 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,47 +1 @@ | ||
# D Template Tutorial | ||
|
||
|
||
## What's it's about | ||
|
||
This project is about a wonderful part of the [D programming language](www.dlang.org "D Website"): templates. | ||
It contains a markdown document on templates aiming to be a kind of tutorial. | ||
|
||
It's divided in 6 chapters: | ||
|
||
* `Introduction` is just, well, the introduction text, explaining the goal of this document and the formatting conventions used. | ||
* `Basics` is about templates syntax, basic building blocks (`static if`, eponymous trick) and function, struct and class templates. | ||
* `Some More Advanced Considerations` is about more advanced ideas, like constraints, tuples or operator overloading. | ||
* `Around Templates` deals with other metaprogramming constructs interacting with templates: traits, compile-time function evaluation (CTFE) and string mixins. | ||
* `Examples` presents some more detailed examples of what can be done with D templates. | ||
* The `Appendix` gives some explanation on the `is` expression and links on other templates resources. | ||
|
||
|
||
If you find any inexactitude, plain error or missing subject, don't hesitate to open an issue on github! | ||
|
||
|
||
## Other formats | ||
|
||
The markdown syntax used for the doc is the extended version used by Pandoc (mainly for tables or code sections). | ||
Using markdown files and [Pandoc](http://johnmacfarlane.net/pandoc/), I generate the HTML, pdf and epub versions. Feel free to comment on them also. | ||
|
||
|
||
## LaTeX notes | ||
|
||
This tutorial doc used to be made of LaTeX files. You can still find them in the `latex` folder, but I'll phase them out (I just keep | ||
|
||
The master document is `dtemplates.tex` and calls the other subfiles: | ||
|
||
* `dtemplates_intro.tex` | ||
* `dtemplates_basics.tex` | ||
* `dtemplates_advanced.tex` | ||
* `dtemplates_around.tex` | ||
* `dtemplates_examples.tex` | ||
* `dtemplates_appendix.tex` | ||
|
||
|
||
The LaTeX files use the [minted](http://code.google.com/p/minted/) package. `minted` uses Python's [Pygment](pygments.org) highlighter. | ||
D code blocks are between `\begin{dcode}` and `\end{dcode}` commands. Transform them into `verbatim` commands if you do not want to use `minted`. | ||
|
||
## Utils | ||
|
||
The `utils` folder contains a small D script to extract the hundreds of modules present in the text and test their compilation. You can also find there the extracted and tested modules. | ||
French translation of Philippe Segaud's [D template tutorial](https://github.com/PhilippeSigaud/D-templates-tutorial). |