|
From: <mi...@us...> - 2017-06-18 23:38:21
|
Revision: 8117
http://sourceforge.net/p/docutils/code/8117
Author: milde
Date: 2017-06-18 23:38:18 +0000 (Sun, 18 Jun 2017)
Log Message:
-----------
Fix [ 320 ] Russian docinfo fields not recognized.
Modified Paths:
--------------
trunk/docutils/HISTORY.txt
trunk/docutils/docutils/transforms/frontmatter.py
trunk/docutils/test/test_transforms/test_docinfo.py
Modified: trunk/docutils/HISTORY.txt
===================================================================
--- trunk/docutils/HISTORY.txt 2017-06-18 19:09:40 UTC (rev 8116)
+++ trunk/docutils/HISTORY.txt 2017-06-18 23:38:18 UTC (rev 8117)
@@ -49,6 +49,10 @@
- Rework patch [ 120 ] (revert change to ``Table.get_column_widths()``
that led to problems in an application with a custom table directive).
+* docutils/transforms/frontmatter.py
+
+ - Fix [ 320 ] Russian docinfo fields not recognized.
+
* docutils/transforms/references.py
- Don't add a second ID to problematic references.
Modified: trunk/docutils/docutils/transforms/frontmatter.py
===================================================================
--- trunk/docutils/docutils/transforms/frontmatter.py 2017-06-18 19:09:40 UTC (rev 8116)
+++ trunk/docutils/docutils/transforms/frontmatter.py 2017-06-18 23:38:18 UTC (rev 8117)
@@ -403,7 +403,7 @@
for field in field_list:
try:
name = field[0][0].astext()
- normedname = nodes.make_id(name)
+ normedname = nodes.fully_normalize_name(name)
if not (len(field) == 2 and normedname in bibliofields
and self.check_empty_biblio_field(field, name)):
raise TransformError
@@ -433,8 +433,10 @@
and isinstance(field[-1][0], nodes.paragraph):
utils.clean_rcs_keywords(
field[-1][0], self.rcs_keyword_substitutions)
- if normedname and normedname not in bibliofields:
- field['classes'].append(normedname)
+ if normedname not in bibliofields:
+ classvalue = nodes.make_id(normedname)
+ if classvalue:
+ field['classes'].append(classvalue)
docinfo.append(field)
nodelist = []
if len(docinfo) != 0:
Modified: trunk/docutils/test/test_transforms/test_docinfo.py
===================================================================
--- trunk/docutils/test/test_transforms/test_docinfo.py 2017-06-18 19:09:40 UTC (rev 8116)
+++ trunk/docutils/test/test_transforms/test_docinfo.py 2017-06-18 23:38:18 UTC (rev 8117)
@@ -1,4 +1,5 @@
#! /usr/bin/env python
+# -*- coding: utf-8 -*-
# $Id$
# Author: David Goodger <go...@py...>
@@ -15,11 +16,19 @@
def suite():
parser = Parser()
- s = DocutilsTestSupport.TransformTestSuite(parser)
+ settings = {'language_code': 'en'}
+ s = DocutilsTestSupport.TransformTestSuite(
+ parser, suite_settings=settings)
s.generateTests(totest)
+ settings['language_code'] = 'de'
+ s.generateTests(totest_de)
+ settings['language_code'] = 'ru'
+ s.generateTests(totest_ru)
return s
totest = {}
+totest_de = {}
+totest_ru = {}
totest['bibliographic_field_lists'] = ((DocInfo,), [
["""\
@@ -326,7 +335,93 @@
"""],
])
+totest_de['bibliographic_field_lists'] = ((DocInfo,), [
+[u"""\
+.. Bibliographic element extraction for a German document.
+:Zusammenfassung: Abstract 1.
+:Autor: Me
+:Adresse: 123 My Street
+ Example, EX
+:Kontakt: me...@my...
+:Version: 1
+:Datum: 2001-08-11
+:Parameter i: integer
+""",
+u"""\
+<document source="test data">
+ <docinfo>
+ <author>
+ Me
+ <address xml:space="preserve">
+ 123 My Street
+ Example, EX
+ <contact>
+ <reference refuri="mailto:me...@my...">
+ me...@my...
+ <version>
+ 1
+ <date>
+ 2001-08-11
+ <field classes="parameter-i">
+ <field_name>
+ Parameter i
+ <field_body>
+ <paragraph>
+ integer
+ <topic classes="abstract">
+ <title>
+ Zusammenfassung
+ <paragraph>
+ Abstract 1.
+ <comment xml:space="preserve">
+ Bibliographic element extraction for a German document.
+"""],])
+
+totest_ru['bibliographic_field_lists'] = ((DocInfo,), [
+[u"""\
+.. Bibliographic element extraction for a Russian document.
+
+:аннотация: Abstract 1.
+:автор: Me
+:адрес: 123 My Street
+ Example, EX
+:контакт: me...@my...
+:версия: 1
+:дата: 2001-08-11
+:Parameter i: integer
+""",
+u"""\
+<document source="test data">
+ <docinfo>
+ <author>
+ Me
+ <address xml:space="preserve">
+ 123 My Street
+ Example, EX
+ <contact>
+ <reference refuri="mailto:me...@my...">
+ me...@my...
+ <version>
+ 1
+ <date>
+ 2001-08-11
+ <field classes="parameter-i">
+ <field_name>
+ Parameter i
+ <field_body>
+ <paragraph>
+ integer
+ <topic classes="abstract">
+ <title>
+ Аннотация
+ <paragraph>
+ Abstract 1.
+ <comment xml:space="preserve">
+ Bibliographic element extraction for a Russian document.
+"""],])
+
+
if __name__ == '__main__':
import unittest
unittest.main(defaultTest='suite')
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|