1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 <html xmlns=
"http://www.w3.org/1999/xhtml" xml:
lang=
"en-US" lang=
"en-US">
5 <!-- git web interface version 1.6.5.GIT, (C) 2005-2006, Kay Sievers <kay.sievers@vrfy.org>, Christian Gierke -->
6 <!-- git core binaries version 1.6.5.GIT -->
8 <meta http-equiv=
"content-type" content=
"text/html; charset=UTF-8" />
9 <meta name=
"robots" content=
"index, nofollow" />
10 <title>Public Git Hosting - newfangle.git/summary
</title>
11 <script type=
"text/javascript">
13 function fixBlameLinks() {
14 var allLinks = document.getElementsByTagName(
"a");
15 for (var i =
0; i < allLinks.length; i++) {
16 var link = allLinks.item(i);
17 if (link.className == 'blamelink')
18 link.href = link.href.replace(
"/blame/",
"/blame_incremental/");
22 <link rel=
"stylesheet" type=
"text/css" href=
"http://repo.or.cz/gitweb.css" />
23 <link rel=
"alternate" title=
"newfangle.git - log - RSS feed"
24 href=
"http://repo.or.cz/w/newfangle.git/rss" type=
"application/rss+xml" />
25 <link rel=
"alternate" title=
"newfangle.git - log - RSS feed (no merges)"
26 href=
"http://repo.or.cz/w/newfangle.git/rss?opt=--no-merges"
27 type=
"application/rss+xml" />
28 <link rel=
"alternate" title=
"newfangle.git - log - Atom feed"
29 href=
"http://repo.or.cz/w/newfangle.git/atom?opt=--no-merges"
30 type=
"application/atom+xml" />
31 <link rel=
"alternate" title=
"newfangle.git - log - Atom feed (no merges)"
32 href=
"http://repo.or.cz/w/newfangle.git/atom?opt=--no-merges"
33 type=
"application/atom+xml" />
34 <link rel=
"shortcut icon" href=
"http://repo.or.cz/git-favicon.png"
36 <script type=
"text/javascript" src=
"http://repo.or.cz/gitweb.js">
42 <div class=
"page_header">
43 Newfangle Literate Programming
</div>
45 <div class=
"page_nav">
46 about |
<a href=
"http://repo.or.cz/w/newfangle.git">git repository
</a> |
<br />
54 <p>Newfangle is a
<a href=
"docs/literate/literate.html">literate
55 programming
</a> technique for Lyx (or Latex) inspired by
<a
56 href=
"http://www.eecs.harvard.edu/nr/noweb/dist">notangle
</a>.
</p>
58 <p>It comes in two parts. The
<strong>weave
</strong> part that produces the
59 formatted document is implemented entirely in Latex, and the
60 <strong>tangle
</strong> that generates the source code is implemented in awk
63 <p>Naturally, newfangle is written using literate programming techniques, using
64 itself, and so the source is also the
<a
65 href=
"docs/newfangle/newfangle.html">documentation
</a>.
</p>
67 <p>The source is written using the
<a href=
"http://www.lyx.org/">Lyx
</a>
68 document editor - an excellent front end to Latex. Lyx is not required, but
69 newfangle provides formatting support for Lyx.
</p>
71 <p>Literate programming makes you write good code, because if you can't write a
72 good justification or explanation for your code, it makes you think again and
73 write something that you can explain.
</p>
81 <li>Generics / macros. Newfangle macros accept parameters, so generic
82 algorithms can be expressed, and then invoked in the code using any
83 particular types or parameters - like C macros, but with all the literate
84 goodness and without all the backslash ugliness.
</li>
85 <li>Latex lstlistings used for code chunk formatting, with automatic markup
86 for dozens of language types.
</li>
87 <li>Automatic escaping and quoting. You can include a shell-script chunk in a
88 makefile and have all the $ escaped to $$ automatically in the extracted
89 source. You can include a text file in a // comment or a
" string and have
90 the appropriate escaping done automatically!</li>
91 <li>Never worry about code documentation again!</li>
92 <li>Newfangle has a makefile stub, Makefile.inc that will automatically
93 extract all project sources, making newfangle easy to integrate with
94 standard Makefileprojects (including automake and autoconf). </li>
99 <a class="title
" href="http://repo.or.cz/w/newfangle.git/shortlog
">Download or
100 Browse Source Code</a> </div>
102 <table class="shortlog
">
105 <td title="2010-
01-
20"><i>Snapshot</i></td>
106 <td class="author
"><a
107 title="Search for commits authored by Sam Liddicott
" class="list
"
108 href="http://repo.or.cz/w/newfangle.git/search?s=Sam+Liddicott;st=author
">Sam
110 <td><a class="list subject
"
111 title="Fix generation of html documentation using icong ISO-
8859-
1//TRANSLIT
"
112 href="http://repo.or.cz/w/newfangle.git/commit/
0a8040029bd8e7a3b8d8ddbcd7acf2822c8708ed
">Bleeding
113 edge</a> <span class="refs
"><span class="head
" title="heads/master
"><a
114 href="http://repo.or.cz/w/newfangle.git/shortlog/refs/heads/master
">master</a></span></span></td>
116 href="http://repo.or.cz/w/newfangle.git/tree/master
">Browse</a> | <a
117 href="http://repo.or.cz/w/newfangle.git/snapshot/master.tar.gz
">tar.gz</a>
119 href="http://repo.or.cz/w/newfangle.git/snapshot/master.zip
">zip</a></td>
122 <td title="2010-
01-
20"><i>2010-01-23</i></td>
123 <td class="author
"><a
124 title="Search for commits authored by Sam Liddicott
" class="list
"
125 href="http://repo.or.cz/w/newfangle.git/search?s=Sam+Liddicott;st=author
">Sam
127 <td><a class="list subject
"
128 href="http://repo.or.cz/w/newfangle.git/commit/abe02a9ae37ad6d6a959a25d67b3c6efe63c1d9e
">Latest
131 href="http://repo.or.cz/w/newfangle.git/tree/latest
">Browse</a> | <a
132 href="http://repo.or.cz/w/newfangle.git/snapshot/latest.tar.gz
">tar.gz</a>
134 href="http://repo.or.cz/w/newfangle.git/snapshot/latest.zip
">zip</a></td>
138 href="http://repo.or.cz/w/newfangle.git/shortlog
">...</a></td>
143 <div class="page_footer
">
145 <div class="page_footer_text
">
146 Newfangle Literate Programming</div>
147 <a class="rss_logo
" title="log RSS feed
"
148 href="http://repo.or.cz/w/newfangle.git/rss
">RSS</a> <a class="rss_logo
"
149 title="log Atom feed
" href="http://repo.or.cz/w/newfangle.git/atom
">Atom</a>