2 new revisions:
Revision: d342dea7adf1
Branch: default
Author: "Hans Petter Langtangen <
h...@simula.no>"
Date: Thu Jul 18 21:24:03 2013
Log: Added url for output of bibliographies.
http://code.google.com/p/doconce/source/detail?r=d342dea7adf1
Revision: db3de1bf03f1
Branch: default
Author: "Hans Petter Langtangen <
h...@simula.no>"
Date: Sun Jul 21 01:24:05 2013
Log: updates
http://code.google.com/p/doconce/source/detail?r=db3de1bf03f1
==============================================================================
Revision: d342dea7adf1
Branch: default
Author: "Hans Petter Langtangen <
h...@simula.no>"
Date: Thu Jul 18 21:24:03 2013
Log: Added url for output of bibliographies.
http://code.google.com/p/doconce/source/detail?r=d342dea7adf1
Modified:
/lib/doconce/publish_doconce.py
=======================================
--- /lib/doconce/publish_doconce.py Sat Jun 29 03:07:17 2013
+++ /lib/doconce/publish_doconce.py Thu Jul 18 21:24:03 2013
@@ -49,6 +49,10 @@
if "year" in paper:
values.append(paper["year"])
+ # URL
+ if "url" in paper:
+ values.append(_doconce_format_url(paper["url"]))
+
return _doconce_join(values)
def doconce_format_books(paper):
@@ -60,6 +64,7 @@
values += [paper["publisher"]]
values += [paper["year"]]
if "doi" in paper: values.append(_doconce_format_doi(paper["doi"]))
+ if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_edited(paper):
@@ -70,6 +75,7 @@
values += [_doconce_format_title(paper)]
values += [paper["publisher"]]
values += [paper["year"]]
+ if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_chapters(paper):
@@ -84,6 +90,7 @@
if "chapter" in paper: values += ["Chapter %s" % paper["chapter"]]
if "pages" in paper: values += ["pp. %s" %
_doconce_format_pages(paper["pages"])]
values += [paper["year"]]
+ if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_proceedings(paper):
@@ -96,6 +103,7 @@
if "editor" in paper: values += [_doconce_format_editors(paper)]
if "publisher" in paper: values += [paper["publisher"]]
values += [paper["year"]]
+ if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_reports(paper):
@@ -107,6 +115,7 @@
if "institution" in paper: values +=
[_doconce_format_institution(paper)]
if "number" in paper: values += [paper["number"]]
values += [paper["year"]]
+ if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_manuals(paper):
@@ -116,6 +125,7 @@
values += [_doconce_get_authors_string(paper["author"])]
values += [_doconce_format_title(paper)]
if "year" in paper: values += [paper["year"]]
+ if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_theses(paper):
@@ -127,6 +137,7 @@
values += [thesistype_strings[paper["thesistype"]]]
if "school" in paper: values += [paper["school"]]
values += [paper["year"]]
+ if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_courses(paper):
@@ -137,6 +148,7 @@
values += [_doconce_format_title(paper)]
if "institution" in paper: values +=
[_doconce_format_institution(paper)]
if "year" in paper: values += [paper["year"]]
+ if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_talks(paper):
@@ -147,6 +159,7 @@
values += [_doconce_format_title(paper)]
if "meeting" in paper: values += [paper["meeting"]]
values += [paper["year"]]
+ if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_posters(paper):
@@ -157,6 +170,7 @@
values += [_doconce_format_title(paper)]
if "meeting" in paper: values += [paper["meeting"]]
values += [paper["year"]]
+ if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
@@ -177,6 +191,7 @@
if "volume" in paper: values += ["vol. %s" % paper["volume"]]
if "pages" in paper: values += ["pp. %s" %
_doconce_format_pages(paper["pages"])]
if "year" in paper: values.append(paper["year"])
+ if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def _doconce_get_key_string(paper):
@@ -237,6 +252,10 @@
"Format arXiv"
return '"arXiv: %s": "
http://arxiv.org/abs/%s"' % (arxiv, arxiv)
+def _doconce_format_url(url):
+ "Format URL"
+ return 'URL: "%s"' % (url)
+
def _doconce_join(values):
"Join values for Doconce entry"
entry = values[1] + ". \n " + ",\n ".join(values[2:]) + "."
+ "\n"
@@ -307,6 +326,10 @@
if "year" in paper:
values.append(paper["year"])
+ # URL
+ if "url" in paper:
+ values.append(_rst_format_url(paper["url"]))
+
return _rst_join(values)
def rst_format_books(paper):
@@ -318,6 +341,7 @@
values += [paper["publisher"]]
values += [paper["year"]]
if "doi" in paper: values.append(_rst_format_doi(paper["doi"]))
+ if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_edited(paper):
@@ -328,6 +352,7 @@
values += [_rst_format_title(paper)]
values += [paper["publisher"]]
values += [paper["year"]]
+ if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_chapters(paper):
@@ -342,6 +367,7 @@
if "chapter" in paper: values += ["Chapter %s" % paper["chapter"]]
if "pages" in paper: values += ["pp. %s" %
_rst_format_pages(paper["pages"])]
values += [paper["year"]]
+ if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_proceedings(paper):
@@ -354,6 +380,7 @@
if "editor" in paper: values += [_rst_format_editors(paper)]
if "publisher" in paper: values += [paper["publisher"]]
values += [paper["year"]]
+ if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_reports(paper):
@@ -365,6 +392,7 @@
if "institution" in paper: values += [_rst_format_institution(paper)]
if "number" in paper: values += [paper["number"]]
values += [paper["year"]]
+ if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_manuals(paper):
@@ -374,6 +402,7 @@
values += [_rst_get_authors_string(paper["author"])]
values += [_rst_format_title(paper)]
if "year" in paper: values += [paper["year"]]
+ if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_theses(paper):
@@ -385,6 +414,7 @@
values += [thesistype_strings[paper["thesistype"]]]
values += [paper["school"]]
values += [paper["year"]]
+ if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_courses(paper):
@@ -395,6 +425,7 @@
values += [_rst_format_title(paper)]
if "institution" in paper: values += [_rst_format_institution(paper)]
values += [paper["year"]]
+ if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_talks(paper):
@@ -405,6 +436,7 @@
values += [_rst_format_title(paper)]
if "meeting" in paper: values += [paper["meeting"]]
values += [paper["year"]]
+ if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_posters(paper):
@@ -415,6 +447,7 @@
values += [_rst_format_title(paper)]
if "meeting" in paper: values += [paper["meeting"]]
values += [paper["year"]]
+ if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
@@ -436,6 +469,7 @@
if "volume" in paper: values += ["vol. %s" % paper["volume"]]
if "pages" in paper: values += ["pp. %s" %
_rst_format_pages(paper["pages"])]
if "year" in paper: values.append(paper["year"])
+ if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def _rst_get_key_string(paper):
@@ -493,6 +527,10 @@
"Format arXiv"
return '"arXiv: %s": "
http://arxiv.org/abs/%s"' % (arxiv, arxiv)
+def _rst_format_url(url):
+ "Format URL"
+ return '`%s <%s>`_' % (url, url)
+
def _rst_join(values):
"Join values for reST entry"
entry = ".. " + values[0] + "\n " + values[1] + ". "
+ ",\n ".join(values[2:]) + "." + "\n"
==============================================================================
Revision: db3de1bf03f1
Branch: default
Author: "Hans Petter Langtangen <
h...@simula.no>"
Date: Sun Jul 21 01:24:05 2013
Log: updates
http://code.google.com/p/doconce/source/detail?r=db3de1bf03f1
Added:
/test/github_md.do.txt
Modified:
/doc/tutorial/_what_is.do.txt
/doc/tutorial/doconce2anything.do.txt
/lib/doconce/doconce_config_default.py
/lib/doconce/misc.py
/lib/doconce/pandoc.py
/lib/doconce/publish_doconce.py
/test/clean.sh
/test/make.sh
/test/test.verify
=======================================
--- /dev/null
+++ /test/github_md.do.txt Sun Jul 21 01:24:05 2013
@@ -0,0 +1,39 @@
+# Test of GitHub Flavored Markdown
+
+# Write in doconce
+# Translate with doconce format pandoc githu_md --github_md
+
+!bquote
+===== Problems with a function =====
+
+There is a problem with the `f(x)` function
+
+!bc pycod
+def f(x):
+ return 1 + x
+!ec
+This function should be quadratic.
+!equote
+
+OK, this is fixed:
+
+!bc pycod
+def f(x, a=1, b=1, c=1):
+ return a*x**2 + b*x + c
+!ec
+
+===== Updated task list =====
+
+ * [x] Offer an `f(x)` function
+ * [ ] Extension to cubic functions
+ * [x] Allowing general coefficient in the quadratic function
+
+=== Remaining functionality ===
+
+|---------------------------------------------------------------|
+| function | purpose | state |
+|----l-----------l------------------------------l---------------|
+| `g(x)` | Compute the Gaussian function. | Formula ready. |
+| `h(x)` | Heaviside function. | Formula ready. |
+| `I(x)` | Indicator function. | Nothing done yet. |
+|---------------------------------------------------------------|
=======================================
--- /doc/tutorial/_what_is.do.txt Thu Jan 31 11:34:36 2013
+++ /doc/tutorial/_what_is.do.txt Sun Jul 21 01:24:05 2013
@@ -68,11 +68,11 @@
__History.__ Doconce was developed in 2006 at a time when most popular
markup languages used quite some tagging. Later, almost untagged
-markup languages like Markdown and Pandoc became popular. Doconce is
-not a replacement of Pandoc, which is a considerably more
-sophisticated project. Moreover, Doconce was developed mainly to
-fulfill the needs for a flexible source code base for books with much
-mathematics and computer code.
+markup languages like Markdown and the Pandoc translator became
+popular. Doconce is not a replacement of Pandoc, which is a
+considerably more sophisticated project. Moreover, Doconce was
+developed mainly to fulfill the needs for a flexible source code base
+for books with much mathematics and computer code.
__Disclaimer.__ Doconce is a simple tool, largely based on interpreting
and handling text through regular expressions. The possibility for
=======================================
--- /doc/tutorial/doconce2anything.do.txt Sat Jul 13 00:16:44 2013
+++ /doc/tutorial/doconce2anything.do.txt Sun Jul 21 01:24:05 2013
@@ -314,6 +314,60 @@
The `-s` option adds a proper header and footer to the `mydoc.html` file.
This recipe is a quick way of makeing HTML notes with (some) mathematics.
+=== GitHub-flavored Markdown ===
+
+Adding the command-line option `github-md` turns on the GutHub-flavored
+Markdown dialect, which is used for the issue tracker
on "GitHub": "
http://github.com". A special feature is the support of task
lists:
+unnumbered lists with `[x]` (task done) or `[ ]` (task not done).
+(Tables get typeset directly as HTML and the syntax for code highlighting
+is different from Pandoc extended Markdown.) Here is an example:
+
+!bc
+|bquote
+===== Problems with a function =====
+
+There is a problem with the `f(x)` function
+
+!bc pycod
+def f(x):
+ return 1 + x
+!ec
+This function should be quadratic.
+|equote
+
+OK, this is fixed:
+
+|bc pycod
+def f(x, a=1, b=1, c=1):
+ return a*x**2 + b*x + c
+|ec
+
+===== Updated task list =====
+
+ * [x] Offer an `f(x)` function
+ * [ ] Extension to cubic functions
+ * [x] Allowing general coefficient in the quadratic function
+
+=== Remaining functionality ===
+
+|---------------------------------------------------------------|
+| function | purpose | state |
+|----l-----------l------------------------------l---------------|
+| `g(x)` | Compute the Gaussian function. | Formula ready. |
+| `h(x)` | Heaviside function. | Formula ready. |
+| `I(x)` | Indicator function. | Nothing done yet. |
+|---------------------------------------------------------------|
+!ec
+Say this text is stored in a file `mycomments.do.txt`. Running
+
+!bc sys
+Terminal> doconce format pandoc mycomments --github_md
+!ec
+produces `mycomments.md` which can be pasted into the Write field of
+the GitHub issue tracker. Turning on Preview shows the typesetting of
+the quote, compute code, inline verbatim, headings, the task list, and
+the table.
+
===== LaTeX =====
=======================================
--- /lib/doconce/doconce_config_default.py Sat Jul 13 00:16:44 2013
+++ /lib/doconce/doconce_config_default.py Sun Jul 21 01:24:05 2013
@@ -46,3 +46,4 @@
without_hints = False
wordpress = False
tables2csv = False
+github_md = False
=======================================
--- /lib/doconce/misc.py Thu Jul 18 20:58:04 2013
+++ /lib/doconce/misc.py Sun Jul 21 01:24:05 2013
@@ -86,6 +86,8 @@
'Make HTML output for
wordpress.com pages.'),
('--tables2csv',
'Write each table to a CSV file table_X.csv, where X is the table
number.'),
+ ('--github_md',
+ 'Turn on github-flavored-markdown dialect of the pandoc translator'),
]
_legal_command_line_options = \
@@ -4528,8 +4530,10 @@
def md2html():
"""
- Read the .md file and add MathJax.Hub.Config such that HTML
- generated from Markdown (via pandoc) gets full LaTeX math support.
+ Translate a .md file to .html that the HTML code gets full LaTeX
+ math support.
+ The .md file is fixed, then ``pandoc -f markdown -t html`` is run
+ to create HTML from Markdown, then the HTML code is fixed.
"""
if len(sys.argv) < 2:
_usage_md2html()
=======================================
--- /lib/doconce/pandoc.py Sun Jun 2 23:13:14 2013
+++ /lib/doconce/pandoc.py Sun Jul 21 01:24:05 2013
@@ -6,7 +6,8 @@
import re, sys
from common import default_movie, plain_exercise, table_analysis, \
insert_code_and_tex, bibliography
-from html import html_movie
+from html import html_movie, html_table
+from misc import option
def pandoc_author(authors_and_institutions, auth2index,
inst2index, index2inst, auth2email):
@@ -62,24 +63,33 @@
# (the "python" typesetting is neutral if the text
# does not parse as python)
+ github_md = option('github_md')
+
# Code blocks apply the ~~~~~ delimiter, with blank lines before
# and after (alternative: indent code 4 spaces - not preferred)
for key in defs:
language = defs[key]
- replacement
= '\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.%s}\n' %
defs[key]
- #replacement
= '\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.%s ,numberLines}\n' %
defs[key] # enable line numbering
- #filestr = re.sub(r'^!bc\s+%s\s*\n' % key,
- # replacement, filestr, flags=re.MULTILINE)
- cpattern = re.compile(r'^!bc\s+%s\s*\n' % key, flags=re.MULTILINE)
- filestr = cpattern.sub(replacement, filestr)
+ if github_md:
+ replacement = '\n```%s\n' % defs[key]
+ else:
+ # pandoc-extended Markdown
+ replacement
= '\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.%s}\n' %
defs[key]
+ #replacement
= '\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.%s ,numberLines}\n' %
defs[key] # enable line numbering
+ filestr = re.sub(r'^!bc\s+%s\s*\n' % key,
+ replacement, filestr, flags=re.MULTILINE)
# any !bc with/without argument becomes an unspecified block
- replacement
= '\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
- cpattern = re.compile(r'^!bc.*$', flags=re.MULTILINE)
- filestr = cpattern.sub(replacement, filestr)
+ if github_md:
+ replacement = '\n```'
+ else:
+ replacement
= '\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
+ filestr = re.sub(r'^!bc.*$', replacement, filestr, flags=re.MULTILINE)
- cpattern = re.compile(r'^!ec\s*$', flags=re.MULTILINE)
- filestr =
cpattern.sub('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n',
filestr)
+ if github_md:
+ replacement = '\n```\n'
+ else:
+ replacement
= '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n'
+ filestr = re.sub(r'^!ec\s*$', replacement, filestr, flags=re.MULTILINE)
filestr = re.sub(r'^!bt *\n', '', filestr, flags=re.MULTILINE)
filestr = re.sub(r'^!et *\n', '', filestr, flags=re.MULTILINE)
@@ -95,10 +105,26 @@
# Seems that title and author must appear on the very first lines
filestr = filestr.lstrip()
+ # Enable tasks lists:
+ # - [x] task 1 done
+ # - [ ] task 2 not yet done
+ if github_md:
+ pattern = '^(\s+)\*\s+(\[[x ]\])\s+'
+ filestr = re.sub(pattern, '\g<1>- \g<2> ', filestr,
flags=re.MULTILINE)
+
return filestr
def pandoc_table(table):
- """
+ if option('github_md'):
+ text = html_table(table)
+ # Fix the problem that `verbatim` inside the table is not
+ # typeset as verbatim in the GitHub Issue Tracker
+ text = re.sub(r'`([^`]+?)`', '<code>\g<1></code>', text)
+ return text
+
+ # else: Pandoc-extended Markdown syntax
+
+ """
Simple markdown tables look like this::
=======================================
--- /lib/doconce/publish_doconce.py Thu Jul 18 21:24:03 2013
+++ /lib/doconce/publish_doconce.py Sun Jul 21 01:24:05 2013
@@ -58,11 +58,11 @@
def doconce_format_books(paper):
"Return string for book in Doconce format"
values = []
- values += [_doconce_get_key_string(paper)]
- values += [_doconce_get_authors_string(paper["author"])]
- values += ['*%s*' % _doconce_format_title(paper)]
- values += [paper["publisher"]]
- values += [paper["year"]]
+ values.append(_doconce_get_key_string(paper))
+ values.append(_doconce_get_authors_string(paper["author"]))
+ values.append('*%s*' % _doconce_format_title(paper))
+ values.append(paper["publisher"])
+ values.append(paper["year"])
if "doi" in paper: values.append(_doconce_format_doi(paper["doi"]))
if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
@@ -70,106 +70,106 @@
def doconce_format_edited(paper):
"Return string for edited book in Doconce format"
values = []
- values += [_doconce_get_key_string(paper)]
- values += [_doconce_get_authors_string(paper["author"])]
- values += [_doconce_format_title(paper)]
- values += [paper["publisher"]]
- values += [paper["year"]]
+ values.append(_doconce_get_key_string(paper))
+ values.append(_doconce_get_authors_string(paper["author"]))
+ values.append(_doconce_format_title(paper))
+ values.append(paper["publisher"])
+ values.append(paper["year"])
if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_chapters(paper):
"Return string for chapter in Doconce format"
values = []
- values += [_doconce_get_key_string(paper)]
- values += [_doconce_get_authors_string(paper["author"])]
- values += [_doconce_format_title(paper)]
- values += [paper["booktitle"]]
- values += [_doconce_format_editors(paper)]
- values += [paper["publisher"]]
- if "chapter" in paper: values += ["Chapter %s" % paper["chapter"]]
- if "pages" in paper: values += ["pp. %s" %
_doconce_format_pages(paper["pages"])]
- values += [paper["year"]]
+ values.append(_doconce_get_key_string(paper))
+ values.append(_doconce_get_authors_string(paper["author"]))
+ values.append(_doconce_format_title(paper))
+ values.append(paper["booktitle"])
+ values.append(_doconce_format_editors(paper))
+ values.append(paper["publisher"])
+ if "chapter" in paper: values.append("Chapter %s" % paper["chapter"])
+ if "pages" in paper: values.append("pp. %s" %
_doconce_format_pages(paper["pages"]))
+ values.append(paper["year"])
if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_proceedings(paper):
"Return string for proceeding in Doconce format"
values = []
- values += [_doconce_get_key_string(paper)]
- values += [_doconce_get_authors_string(paper["author"])]
- values += [_doconce_format_title(paper)]
- values += [_doconce_format_booktitle(paper)]
- if "editor" in paper: values += [_doconce_format_editors(paper)]
- if "publisher" in paper: values += [paper["publisher"]]
- values += [paper["year"]]
+ values.append(_doconce_get_key_string(paper))
+ values.append(_doconce_get_authors_string(paper["author"]))
+ values.append(_doconce_format_title(paper))
+ values.append(_doconce_format_booktitle(paper))
+ if "editor" in paper: values.append(_doconce_format_editors(paper))
+ if "publisher" in paper: values.append(paper["publisher"])
+ values.append(paper["year"])
if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_reports(paper):
"Return string for report in Doconce format"
values = []
- values += [_doconce_get_key_string(paper)]
- values += [_doconce_get_authors_string(paper["author"])]
- values += [_doconce_format_title(paper)]
- if "institution" in paper: values +=
[_doconce_format_institution(paper)]
- if "number" in paper: values += [paper["number"]]
- values += [paper["year"]]
+ values.append(_doconce_get_key_string(paper))
+ values.append(_doconce_get_authors_string(paper["author"]))
+ values.append(_doconce_format_title(paper))
+ if "institution" in paper:
values.append(_doconce_format_institution(paper))
+ if "number" in paper: values.append(paper["number"])
+ values.append(paper["year"])
if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_manuals(paper):
"Return string for manual in Doconce format"
values = []
- values += [_doconce_get_key_string(paper)]
- values += [_doconce_get_authors_string(paper["author"])]
- values += [_doconce_format_title(paper)]
- if "year" in paper: values += [paper["year"]]
+ values.append(_doconce_get_key_string(paper))
+ values.append(_doconce_get_authors_string(paper["author"]))
+ values.append(_doconce_format_title(paper))
+ if "year" in paper: values.append(paper["year"])
if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_theses(paper):
"Return string for thesis in Doconce format"
values = []
- values += [_doconce_get_key_string(paper)]
- values += [_doconce_get_authors_string(paper["author"])]
- values += [_doconce_format_title(paper)]
- values += [thesistype_strings[paper["thesistype"]]]
- if "school" in paper: values += [paper["school"]]
- values += [paper["year"]]
+ values.append(_doconce_get_key_string(paper))
+ values.append(_doconce_get_authors_string(paper["author"]))
+ values.append(_doconce_format_title(paper))
+ values.append(thesistype_strings[paper["thesistype"]])
+ if "school" in paper: values.append(paper["school"])
+ values.append(paper["year"])
if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_courses(paper):
"Return string for course in Doconce format"
values = []
- values += [_doconce_get_key_string(paper)]
- values += [_doconce_get_authors_string(paper["author"])]
- values += [_doconce_format_title(paper)]
- if "institution" in paper: values +=
[_doconce_format_institution(paper)]
- if "year" in paper: values += [paper["year"]]
+ values.append(_doconce_get_key_string(paper))
+ values.append(_doconce_get_authors_string(paper["author"]))
+ values.append(_doconce_format_title(paper))
+ if "institution" in paper:
values.append(_doconce_format_institution(paper))
+ if "year" in paper: values.append(paper["year"])
if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_talks(paper):
"Return string for talk in Doconce format"
values = []
- values += [_doconce_get_key_string(paper)]
- values += [_doconce_get_authors_string(paper["author"])]
- values += [_doconce_format_title(paper)]
- if "meeting" in paper: values += [paper["meeting"]]
- values += [paper["year"]]
+ values.append(_doconce_get_key_string(paper))
+ values.append(_doconce_get_authors_string(paper["author"]))
+ values.append(_doconce_format_title(paper))
+ if "meeting" in paper: values.append(paper["meeting"])
+ values.append(paper["year"])
if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
def doconce_format_posters(paper):
"Return string for poster in Doconce format"
values = []
- values += [_doconce_get_key_string(paper)]
- values += [_doconce_get_authors_string(paper["author"])]
- values += [_doconce_format_title(paper)]
- if "meeting" in paper: values += [paper["meeting"]]
- values += [paper["year"]]
+ values.append(_doconce_get_key_string(paper))
+ values.append(_doconce_get_authors_string(paper["author"]))
+ values.append(_doconce_format_title(paper))
+ if "meeting" in paper: values.append(paper["meeting"])
+ values.append(paper["year"])
if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
@@ -177,19 +177,19 @@
def doconce_format_misc(paper):
"Return string for misc in Doconce format"
values = []
- values += [_doconce_get_key_string(paper)]
- values += [_doconce_get_authors_string(paper["author"])]
- values += [_doconce_format_title(paper)]
+ values.append(_doconce_get_key_string(paper))
+ values.append(_doconce_get_authors_string(paper["author"]))
+ values.append(_doconce_format_title(paper))
if "howpublished" in paper:
howpublished = paper["howpublished"]
- values += [howpublished]
- if "booktitle" in paper: values += ["in *%s*" % paper["booktitle"]]
- if "meeting" in paper: values += [paper["meeting"]]
- if "thesistype" in paper: values +=
[thesistype_strings[paper["thesistype"]]]
- if "school" in paper: values += [paper["school"]]
- if "chapter" in paper: values += ["Chapter %s" % paper["chapter"]]
- if "volume" in paper: values += ["vol. %s" % paper["volume"]]
- if "pages" in paper: values += ["pp. %s" %
_doconce_format_pages(paper["pages"])]
+ values.append(howpublished)
+ if "booktitle" in paper: values.append("in *%s*" % paper["booktitle"])
+ if "meeting" in paper: values.append(paper["meeting"])
+ if "thesistype" in paper:
values.append(thesistype_strings[paper["thesistype"]])
+ if "school" in paper: values.append(paper["school"])
+ if "chapter" in paper: values.append("Chapter %s" % paper["chapter"])
+ if "volume" in paper: values.append("vol. %s" % paper["volume"])
+ if "pages" in paper: values.append("pp. %s" %
_doconce_format_pages(paper["pages"]))
if "year" in paper: values.append(paper["year"])
if "url" in paper: values.append(_doconce_format_url(paper["url"]))
return _doconce_join(values)
@@ -335,11 +335,11 @@
def rst_format_books(paper):
"Return string for book in reST format"
values = []
- values += [_rst_get_key_string(paper)]
- values += [_rst_get_authors_string(paper["author"])]
- values += ['*%s*' % _rst_format_title(paper)]
- values += [paper["publisher"]]
- values += [paper["year"]]
+ values.append(_rst_get_key_string(paper))
+ values.append(_rst_get_authors_string(paper["author"]))
+ values.append('*%s*' % _rst_format_title(paper))
+ values.append(paper["publisher"])
+ values.append(paper["year"])
if "doi" in paper: values.append(_rst_format_doi(paper["doi"]))
if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
@@ -347,106 +347,106 @@
def rst_format_edited(paper):
"Return string for edited book in reST format"
values = []
- values += [_rst_get_key_string(paper)]
- values += [_rst_get_authors_string(paper["author"])]
- values += [_rst_format_title(paper)]
- values += [paper["publisher"]]
- values += [paper["year"]]
+ values.append(_rst_get_key_string(paper))
+ values.append(_rst_get_authors_string(paper["author"]))
+ values.append(_rst_format_title(paper))
+ values.append(paper["publisher"])
+ values.append(paper["year"])
if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_chapters(paper):
"Return string for chapter in reST format"
values = []
- values += [_rst_get_key_string(paper)]
- values += [_rst_get_authors_string(paper["author"])]
- values += [_rst_format_title(paper)]
- values += [paper["booktitle"]]
- values += [_rst_format_editors(paper)]
- values += [paper["publisher"]]
- if "chapter" in paper: values += ["Chapter %s" % paper["chapter"]]
- if "pages" in paper: values += ["pp. %s" %
_rst_format_pages(paper["pages"])]
- values += [paper["year"]]
+ values.append(_rst_get_key_string(paper))
+ values.append(_rst_get_authors_string(paper["author"]))
+ values.append(_rst_format_title(paper))
+ values.append(paper["booktitle"])
+ values.append(_rst_format_editors(paper))
+ values.append(paper["publisher"])
+ if "chapter" in paper: values.append("Chapter %s" % paper["chapter"])
+ if "pages" in paper: values.append("pp. %s" %
_rst_format_pages(paper["pages"]))
+ values.append(paper["year"])
if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_proceedings(paper):
"Return string for proceedings in reST format"
values = []
- values += [_rst_get_key_string(paper)]
- values += [_rst_get_authors_string(paper["author"])]
- values += [_rst_format_title(paper)]
- values += [paper["booktitle"]]
- if "editor" in paper: values += [_rst_format_editors(paper)]
- if "publisher" in paper: values += [paper["publisher"]]
- values += [paper["year"]]
+ values.append(_rst_get_key_string(paper))
+ values.append(_rst_get_authors_string(paper["author"]))
+ values.append(_rst_format_title(paper))
+ values.append(paper["booktitle"])
+ if "editor" in paper: values.append(_rst_format_editors(paper))
+ if "publisher" in paper: values.append(paper["publisher"])
+ values.append(paper["year"])
if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_reports(paper):
"Return string for report in reST format"
values = []
- values += [_rst_get_key_string(paper)]
- values += [_rst_get_authors_string(paper["author"])]
- values += [_rst_format_title(paper)]
- if "institution" in paper: values += [_rst_format_institution(paper)]
- if "number" in paper: values += [paper["number"]]
- values += [paper["year"]]
+ values.append(_rst_get_key_string(paper))
+ values.append(_rst_get_authors_string(paper["author"]))
+ values.append(_rst_format_title(paper))
+ if "institution" in paper:
values.append(_rst_format_institution(paper))
+ if "number" in paper: values.append(paper["number"])
+ values.append(paper["year"])
if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_manuals(paper):
"Return string for manual in reST format"
values = []
- values += [_rst_get_key_string(paper)]
- values += [_rst_get_authors_string(paper["author"])]
- values += [_rst_format_title(paper)]
- if "year" in paper: values += [paper["year"]]
+ values.append(_rst_get_key_string(paper))
+ values.append(_rst_get_authors_string(paper["author"]))
+ values.append(_rst_format_title(paper))
+ if "year" in paper: values.append(paper["year"])
if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_theses(paper):
"Return string for thesis in reST format"
values = []
- values += [_rst_get_key_string(paper)]
- values += [_rst_get_authors_string(paper["author"])]
- values += [_rst_format_title(paper)]
- values += [thesistype_strings[paper["thesistype"]]]
- values += [paper["school"]]
- values += [paper["year"]]
+ values.append(_rst_get_key_string(paper))
+ values.append(_rst_get_authors_string(paper["author"]))
+ values.append(_rst_format_title(paper))
+ values.append(thesistype_strings[paper["thesistype"]])
+ values.append(paper["school"])
+ values.append(paper["year"])
if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_courses(paper):
"Return string for course in reST format"
values = []
- values += [_rst_get_key_string(paper)]
- values += [_rst_get_authors_string(paper["author"])]
- values += [_rst_format_title(paper)]
- if "institution" in paper: values += [_rst_format_institution(paper)]
- values += [paper["year"]]
+ values.append(_rst_get_key_string(paper))
+ values.append(_rst_get_authors_string(paper["author"]))
+ values.append(_rst_format_title(paper))
+ if "institution" in paper:
values.append(_rst_format_institution(paper))
+ values.append(paper["year"])
if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_talks(paper):
"Return string for talk in reST format"
values = []
- values += [_rst_get_key_string(paper)]
- values += [_rst_get_authors_string(paper["author"])]
- values += [_rst_format_title(paper)]
- if "meeting" in paper: values += [paper["meeting"]]
- values += [paper["year"]]
+ values.append(_rst_get_key_string(paper))
+ values.append(_rst_get_authors_string(paper["author"]))
+ values.append(_rst_format_title(paper))
+ if "meeting" in paper: values.append(paper["meeting"])
+ values.append(paper["year"])
if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
def rst_format_posters(paper):
"Return string for poster in reST format"
values = []
- values += [_rst_get_key_string(paper)]
- values += [_rst_get_authors_string(paper["author"])]
- values += [_rst_format_title(paper)]
- if "meeting" in paper: values += [paper["meeting"]]
- values += [paper["year"]]
+ values.append(_rst_get_key_string(paper))
+ values.append(_rst_get_authors_string(paper["author"]))
+ values.append(_rst_format_title(paper))
+ if "meeting" in paper: values.append(paper["meeting"])
+ values.append(paper["year"])
if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
@@ -454,20 +454,20 @@
def rst_format_misc(paper):
"Return string for misc in reST format"
values = []
- values += [_rst_get_key_string(paper)]
- values += [_rst_get_key_string(paper)]
- values += [_rst_get_authors_string(paper["author"])]
- values += [_rst_format_title(paper)]
+ values.append(_rst_get_key_string(paper))
+ values.append(_rst_get_key_string(paper))
+ values.append(_rst_get_authors_string(paper["author"]))
+ values.append(_rst_format_title(paper))
if "howpublished" in paper:
howpublished = paper["howpublished"]
- values += [howpublished]
- if "booktitle" in paper: values += ["in *%s*" % paper["booktitle"]]
- if "meeting" in paper: values += [paper["meeting"]]
- if "thesistype" in paper: values +=
[thesistype_strings[paper["thesistype"]]]
- if "school" in paper: values += [paper["school"]]
- if "chapter" in paper: values += ["Chapter %s" % paper["chapter"]]
- if "volume" in paper: values += ["vol. %s" % paper["volume"]]
- if "pages" in paper: values += ["pp. %s" %
_rst_format_pages(paper["pages"])]
+ values.append(howpublished)
+ if "booktitle" in paper: values.append("in *%s*" % paper["booktitle"])
+ if "meeting" in paper: values.append(paper["meeting"])
+ if "thesistype" in paper:
values.append(thesistype_strings[paper["thesistype"]])
+ if "school" in paper: values.append(paper["school"])
+ if "chapter" in paper: values.append("Chapter %s" % paper["chapter"])
+ if "volume" in paper: values.append("vol. %s" % paper["volume"])
+ if "pages" in paper: values.append("pp. %s" %
_rst_format_pages(paper["pages"]))
if "year" in paper: values.append(paper["year"])
if "url" in paper: values.append(_rst_format_url(paper["url"]))
return _rst_join(values)
=======================================
--- /test/clean.sh Wed May 29 13:21:03 2013
+++ /test/clean.sh Sun Jul 21 01:24:05 2013
@@ -1,5 +1,5 @@
#!/bin/sh
-files="tmp_* *~ test.v verify* testdoc.*wiki testdoc*.html testdoc.rst*
testdoc.txt testdoc.epytext testdoc*.tex* *.toc
testdoc.st testdoc.md
testdoc.sphinx.rst *.log sphinx-rootdir sphinx-rootdir-math
tmp_encoding.txt tmp1.do.txt tmp2.do.txt wavepacket*.html mjolnir.html tmp*
*.aux *.dvi *.idx *.out testdoc.pdf _static .tmp* .*.exerinfo test.output
testdoc.tmp html_template.html author1.html author1.p.tex author1.md
author1.pdf author1.rst author1.tex author1.txt
automake-sphinx.py ._part*.html html_images reveal.js slides.html
slides_*.html mako_test*.html style_vagrant papers.* venues.list admon.rst
admon*.tex admon*.html admon.pdf tmp_admon table_*.csv testtable.do.txt"
+files="tmp_* *~ test.v verify* testdoc.*wiki testdoc*.html testdoc.rst*
testdoc.txt testdoc.epytext testdoc*.tex* *.toc
testdoc.st testdoc.md
testdoc.sphinx.rst *.log sphinx-rootdir sphinx-rootdir-math
tmp_encoding.txt tmp1.do.txt tmp2.do.txt wavepacket*.html mjolnir.html tmp*
*.aux *.dvi *.idx *.out testdoc.pdf _static .tmp* .*.exerinfo test.output
testdoc.tmp html_template.html author1.html author1.p.tex author1.md
author1.pdf author1.rst author1.tex author1.txt
automake-sphinx.py ._part*.html html_images reveal.js slides.html
slides_*.html mako_test*.html style_vagrant papers.* venues.list admon.rst
admon*.tex admon*.html admon.pdf tmp_admon table_*.csv testtable.do.txt
github_md.md"
ls $files 2> /dev/null
rm -rf $files
rm -f test.v
=======================================
--- /test/make.sh Wed May 29 13:21:03 2013
+++ /test/make.sh Sun Jul 21 01:24:05 2013
@@ -251,6 +251,8 @@
system doconce format mwiki admon
cp admon.mwiki admon_mwiki.mwiki
+system doconce format pandoc githu_md.do.txt --github_md
+
#google-chrome admon_*.html
#for pdf in admon_*.pdf; do evince $pdf; done
=======================================
--- /test/test.verify Wed May 29 13:21:03 2013
+++ /test/test.verify Sun Jul 21 01:24:05 2013
@@ -63,7 +63,7 @@
log = open(logfilename, 'a')
files
= '.do.txt', '.html', '.p.tex', '.tex_ptex2tex', '.tex_doconce_ptex2tex', '.rst', '.sphinx.rst', '.gwiki', '.mwiki', '.cwiki', '.st', '.epytext', '.txt', '.md', '.ipynb', '.tmp'
files = ['testdoc' + ext for ext in files] + [
- '.testdoc.exerinfo', 'tmp_encodings.txt', 'testdoc_pnd_l2h.html', 'testdoc_pnd_d2h.html', 'html_template.do.txt', 'html_template1.html', 'html_template.html', 'template1.html', 'author1.html', 'author1.p.tex', 'author1.rst', 'author1.txt', '._part0000_testdoc.html', '._part0001_testdoc.html', '._part0002_testdoc.html', 'testdoc_wordpress.html', 'testdoc_no_solutions.html', 'testdoc_no_solutions.p.tex', 'mako_test1.html', 'mako_test2.html', 'mako_test3.html', 'mako_test3b.html', 'mako_test4.html', 'automake_sphinx_testdoc.py', 'automake_sphinx_math_test.py', '.testdoc_html_file_collection', 'make.sh', 'math_test.do.txt', 'math_test.md', 'math_test_html.html', 'math_test_pandoc.html', 'math_test.p.tex', 'math_test.rst', 'testdoc_vagrant.html', '._part0000_testdoc_vagrant.html', '._part0001_testdoc_vagrant.html', '._part0002_testdoc_vagrant.html', '._part0000_testdoc.rst', '._part0001_testdoc.rst', '._part0002_testdoc.rst', 'admon.p.tex', 'admon_colors1.tex', 'admon_colors2.tex', 'admon_graybox1.tex', 'admon_graybox2.tex', 'admon_graybox3.tex', 'admon_paragraph.tex', 'admon_yellowbox.tex', 'admon_colors.html', 'admon_gray.html', 'admon_yellow.html', 'admon_sphinx.html', 'admon_lyx.html', 'admon_paragraph.html', 'admon_apricot.html', 'admon_vagrant.html', 'admon_mwiki.mwiki', 'slides1.do.txt', 'slides1_reveal.html', 'tmp_slides_html_all.sh', 'slides1_1st.html', 'slides1_deck.html', 'slides1.p.tex', 'slides1.tex', 'slides2.do.txt', 'slides2_reveal.html', 'slides2.p.tex', 'slides2.tex', 'slides3.do.txt', 'slides3_reveal.html', 'slides3.p.tex', 'slides3.tex', 'table_1.csv', 'table_2.csv', 'table_3.csv', 'table_4.csv', 'testtable.csv', 'testtable.do.txt']
+ '.testdoc.exerinfo', 'tmp_encodings.txt', 'testdoc_pnd_l2h.html', 'testdoc_pnd_d2h.html', 'html_template.do.txt', 'html_template1.html', 'html_template.html', 'template1.html', 'author1.html', 'author1.p.tex', 'author1.rst', 'author1.txt', '._part0000_testdoc.html', '._part0001_testdoc.html', '._part0002_testdoc.html', 'testdoc_wordpress.html', 'testdoc_no_solutions.html', 'testdoc_no_solutions.p.tex', 'mako_test1.html', 'mako_test2.html', 'mako_test3.html', 'mako_test3b.html', 'mako_test4.html', 'automake_sphinx_testdoc.py', 'automake_sphinx_math_test.py', '.testdoc_html_file_collection', 'make.sh', 'math_test.do.txt', 'math_test.md', 'math_test_html.html', 'math_test_pandoc.html', 'math_test.p.tex', 'math_test.rst', 'testdoc_vagrant.html', '._part0000_testdoc_vagrant.html', '._part0001_testdoc_vagrant.html', '._part0002_testdoc_vagrant.html', '._part0000_testdoc.rst', '._part0001_testdoc.rst', '._part0002_testdoc.rst', 'admon.p.tex', 'admon_colors1.tex', 'admon_colors2.tex', 'admon_graybox1.tex', 'admon_graybox2.tex', 'admon_graybox3.tex', 'admon_paragraph.tex', 'admon_yellowbox.tex', 'admon_colors.html', 'admon_gray.html', 'admon_yellow.html', 'admon_sphinx.html', 'admon_lyx.html', 'admon_paragraph.html', 'admon_apricot.html', 'admon_vagrant.html', 'admon_mwiki.mwiki', 'slides1.do.txt', 'slides1_reveal.html', 'tmp_slides_html_all.sh', 'slides1_1st.html', 'slides1_deck.html', 'slides1.p.tex', 'slides1.tex', 'slides2.do.txt', 'slides2_reveal.html', 'slides2.p.tex', 'slides2.tex', 'slides3.do.txt', 'slides3_reveal.html', 'slides3.p.tex', 'slides3.tex', 'table_1.csv', 'table_2.csv', 'table_3.csv', 'table_4.csv', 'testtable.csv', 'testtable.do.txt', 'github_md.md']
files.insert(1, '_testdoc.do.txt')
for f in files: