fnp
/
librarian.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
pdf typography
[librarian.git]
/
librarian
/
functions.py
diff --git
a/librarian/functions.py
b/librarian/functions.py
index
8427ba8
..
e5023b3
100644
(file)
--- a/
librarian/functions.py
+++ b/
librarian/functions.py
@@
-6,6
+6,8
@@
from lxml import etree
import re
from lxml import etree
import re
+from librarian.dcparser import Person
+
def _register_function(f):
""" Register extension function with lxml """
ns = etree.FunctionNamespace('http://wolnelektury.pl/functions')
def _register_function(f):
""" Register extension function with lxml """
ns = etree.FunctionNamespace('http://wolnelektury.pl/functions')
@@
-68,9
+70,9
@@
def reg_wrap_words():
text = ''.join(text)
if not wrapping:
return text
text = ''.join(text)
if not wrapping:
return text
-
+
words = re.split(r'\s', text)
words = re.split(r'\s', text)
-
+
line_length = 0
lines = [[]]
for word in words:
line_length = 0
lines = [[]]
for word in words:
@@
-89,7
+91,17
@@
def reg_person_name():
""" Converts "Name, Forename" to "Forename Name" """
if isinstance(text, list):
text = ''.join(text)
""" Converts "Name, Forename" to "Forename Name" """
if isinstance(text, list):
text = ''.join(text)
- return ' '.join([t.strip() for t in text.split(',', 1)[::-1]])
+ p = Person.from_text(text)
+ return ' '.join(p.first_names + (p.last_name,))
_register_function(person_name)
_register_function(person_name)
+def reg_texcommand():
+ def texcommand(context, text):
+ """Remove non-letters"""
+ if isinstance(text, list):
+ text = ''.join(text)
+ return re.sub(r'[^a-zA-Z]', '', text).strip()
+ _register_function(texcommand)
+
+