aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--README.md30
-rwxr-xr-xjs/stmd.js2
-rwxr-xr-xjs/test.js19
-rw-r--r--man/man1/stmd.12
-rw-r--r--man/stmd.1.md4
-rw-r--r--narrative.md4
-rw-r--r--spec.txt16
-rw-r--r--src/main.c2
9 files changed, 44 insertions, 37 deletions
diff --git a/Makefile b/Makefile
index c1decfc..55b6645 100644
--- a/Makefile
+++ b/Makefile
@@ -66,7 +66,7 @@ update-site: spec.html narrative.html
cp spec.html _site/
cp narrative.html _site/index.html
cp -r js/* _site/js/
- (cd _site ; git commit -a -m "Updated site for latest spec, narrative, js" ; git push; cd ..)
+ (cd _site ; git pull ; git commit -a -m "Updated site for latest spec, narrative, js" ; git push; cd ..)
clean:
-rm test $(SRCDIR)/*.o $(SRCDIR)/scanners.c
diff --git a/README.md b/README.md
index 889cc4e..78fc837 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,14 @@
-Standard markdown
-=================
+CommonMark
+==========
-Standard markdown is a [specification of markdown syntax][the spec],
+CommonMark is a [specification of Markdown syntax][the spec],
together with BSD3-licensed implementations (`stmd`) in C and javascript.
The implementations
-------------------
The C implementation provides both a library and a standalone program
-`stmd` that converts markdown to HTML. It is written in standard C99
+`stmd` that converts Markdown to HTML. It is written in standard C99
and has no library dependencies. (However, if you check it out from the
repository, you'll need [`re2c`](http://re2c.org) to generate
`scanners.c` from `scanners.re`. This is only a build dependency for
@@ -30,7 +30,7 @@ this.)
[The spec] contains over 400 embedded examples which serve as conformance
tests. To run the tests for `stmd`, do `make test`. To run them for
-another markdown program, say `myprog`, do `make test PROG=myprog`. To
+another Markdown program, say `myprog`, do `make test PROG=myprog`. To
run the tests for `stmd.js`, do `make testjs`.
[The spec]: http://jgm.github.io/stmd/spec.html
@@ -38,11 +38,11 @@ run the tests for `stmd.js`, do `make testjs`.
The spec
--------
-The source of [the spec] is `spec.txt`. This is basically a markdown
+The source of [the spec] is `spec.txt`. This is basically a Markdown
file, with code examples written in a shorthand form:
.
- markdown source
+ Markdown source
.
expected HTML output
.
@@ -55,7 +55,7 @@ The spec is written from the point of view of the human writer, not
the computer reader. It is not an algorithm---an English translation of
a computer program---but a declarative description of what counts as a block
quote, a code block, and each of the other structural elements that can
-make up a markdown document.
+make up a Markdown document.
Because John Gruber's [canonical syntax
description](http://daringfireball.net/projects/markdown/syntax) leaves
@@ -64,13 +64,13 @@ making a large number of decisions, many of them somewhat arbitrary.
In making them, I have appealed to existing conventions and
considerations of simplicity, readability, expressive power, and
consistency. I have tried to ensure that "normal" documents in the many
-incompatible existing implementations of markdown will render, as far as
+incompatible existing implementations of Markdown will render, as far as
possible, as their authors intended. And I have tried to make the rules
for different elements work together harmoniously. In places where
different decisions could have been made (for example, the rules
governing list indentation), I have explained the rationale for
my choices. In a few cases, I have departed slightly from the canonical
-syntax description, in ways that I think further the goals of markdown
+syntax description, in ways that I think further the goals of Markdown
as stated in that description.
For the most part, I have limited myself to the basic elements
@@ -80,17 +80,17 @@ right before considering such things. However, I have included a visible
syntax for line breaks and fenced code blocks.
In all of this, I have been guided by eight years experience writing
-markdown implementations in several languages, including the first
-markdown parser not based on regular expression substitutions
+Markdown implementations in several languages, including the first
+Markdown parser not based on regular expression substitutions
([pandoc](http://github.com/jgm/pandoc)) and the first markdown parsers
based on PEG grammars
([peg-markdown](http://github.com/jgm/peg-markdown),
[lunamark](http://github.com/jgm/lunamark)). Maintaining these projects
and responding to years of user feedback have given me a good sense of
-the complexities involved in parsing markdown, and of the various design
+the complexities involved in parsing Markdown, and of the various design
decisions that can be made. I have also explored differences between
-markdown implementations extensively using [babelmark
+Markdown implementations extensively using [babelmark
2](http://johnmacfarlane.net/babelmark2/). In the early phases of
working out the spec, I benefited greatly from collaboration with David
-Greenspan, and from feedback from several industrial users of markdown,
+Greenspan, and from feedback from several industrial users of Markdown,
including Jeff Atwood, Vincent Marti, and Neil Williams.
diff --git a/js/stmd.js b/js/stmd.js
index 65b958d..78ea89b 100755
--- a/js/stmd.js
+++ b/js/stmd.js
@@ -1,4 +1,4 @@
-// stmd.js - "standard markdown" in javascript
+// stmd.js - CommomMark in javascript
// Copyright (C) 2014 John MacFarlane
// License: BSD3.
diff --git a/js/test.js b/js/test.js
index b16b2f1..19c0c92 100755
--- a/js/test.js
+++ b/js/test.js
@@ -1,9 +1,8 @@
#!/usr/bin/env node
var fs = require('fs');
-var util = require('util');
var stmd = require('./stmd');
-var ansi = require('./ansi/ansi')
+var ansi = require('./ansi/ansi');
var cursor = ansi(process.stdout);
var writer = new stmd.HtmlRenderer();
@@ -15,19 +14,23 @@ var failed = 0;
var showSpaces = function(s) {
var t = s;
return t.replace(/\t/g,'→')
- .replace(/ /g,'␣');
-}
+ .replace(/ /g,'␣');
+};
fs.readFile('spec.txt', 'utf8', function(err, data) {
if (err) {
return console.log(err);
}
+ var i;
var examples = [];
var current_section = "";
var example_number = 0;
- tests = data.replace(/^<!-- END TESTS -->(.|[\n])*/m,'');
+ var tests = data
+ .replace(/\r\n?/g, "\n") // Normalize newlines for platform independence
+ .replace(/^<!-- END TESTS -->(.|[\n])*/m, '');
+
tests.replace(/^\.\n([\s\S]*?)^\.\n([\s\S]*?)^\.$|^#{1,6} *(.*)$/gm,
- function(_,x,y,z,w){
+ function(_,x,y,z){
if (z) {
current_section = z;
} else {
@@ -45,7 +48,7 @@ fs.readFile('spec.txt', 'utf8', function(err, data) {
for (i = 0; i < examples.length; i++) {
var example = examples[i];
- if (example.section != current_section) {
+ if (example.section !== current_section) {
if (current_section !== '') {
cursor.write('\n');
}
@@ -53,7 +56,7 @@ fs.readFile('spec.txt', 'utf8', function(err, data) {
cursor.reset().write(current_section).reset().write(' ');
}
var actual = writer.renderBlock(reader.parse(example.markdown.replace(/→/g, '\t')));
- if (actual == example.html) {
+ if (actual === example.html) {
passed++;
cursor.green().write('✓').reset();
} else {
diff --git a/man/man1/stmd.1 b/man/man1/stmd.1
index 913d5a7..6bfdd80 100644
--- a/man/man1/stmd.1
+++ b/man/man1/stmd.1
@@ -10,7 +10,7 @@ stmd [\f[I]options\f[]] [file*]
\f[C]stmd\f[] acts as a pipe, reading from stdin or from the specified
files and writing to stdout.
It converts markdown formatted plain text to HTML, using the conventions
-described in the standard markdown spec.
+described in the CommonMark spec.
.SH OPTIONS
.TP
.B \f[C]\-\-ast\f[]
diff --git a/man/stmd.1.md b/man/stmd.1.md
index 6e38afc..3947a79 100644
--- a/man/stmd.1.md
+++ b/man/stmd.1.md
@@ -17,8 +17,8 @@ stmd [*options*] [file\*]
`stmd` acts as a pipe, reading from stdin or from the specified
files and writing to stdout. It converts markdown formatted plain
-text to HTML, using the conventions described in the standard
-markdown spec.
+text to HTML, using the conventions described in the CommonMark
+spec.
# OPTIONS
diff --git a/narrative.md b/narrative.md
index 12bf780..315c47b 100644
--- a/narrative.md
+++ b/narrative.md
@@ -1,8 +1,8 @@
---
-title: Standard markdown
+title: CommonMark
...
-Standard markdown is a [specification of markdown
+CommonMark is a [specification of markdown
syntax](http://jgm.github.io/stmd/spec.html), together with
BSD3-licensed implementations (`stmd`) in C and javascript. The source
for the spec and the two implementations can be found in [this
diff --git a/spec.txt b/spec.txt
index e3f0cd8..fb0aa20 100644
--- a/spec.txt
+++ b/spec.txt
@@ -1,9 +1,9 @@
---
-title: Standard Markdown Spec
+title: CommonMark Spec
author:
- John MacFarlane
version: 1
-date: 2014-07-21
+date: 2014-09-06
...
# Introduction
@@ -203,15 +203,19 @@ to a certain encoding.
Tabs in lines are expanded to spaces, with a tab stop of 4 characters:
.
-foo→baz→→bim
+→foo→baz→→bim
.
-<p>foo baz bim</p>
+<pre><code>foo baz bim
+</code></pre>
.
.
-οὐ→χρῆν
+ a→a
+ ὐ→a
.
-<p>οὐ χρῆν</p>
+<pre><code>a a
+ὐ a
+</code></pre>
.
Line endings are replaced by newline characters (LF).
diff --git a/src/main.c b/src/main.c
index fa334b3..f0ecb82 100644
--- a/src/main.c
+++ b/src/main.c
@@ -22,7 +22,7 @@ int main(int argc, char *argv[]) {
for (i=1; i < argc; i++) {
if (strcmp(argv[i], "--version") == 0) {
printf("stmd %s", VERSION);
- printf(" - standard markdown converter (c) 2014 John MacFarlane\n");
+ printf(" - CommonMark converter (c) 2014 John MacFarlane\n");
exit(0);
} else if ((strcmp(argv[i], "--help") == 0) ||
(strcmp(argv[i], "-h") == 0)) {