diff options
author | Robert Alessi <alessi@robertalessi.net> | 2020-08-05 13:29:14 +0200 |
---|---|---|
committer | Robert Alessi <alessi@robertalessi.net> | 2020-08-05 13:29:14 +0200 |
commit | 56f470fca333e41c62f976db64efab40f91c1954 (patch) | |
tree | b09af8dd4c77936c67e534681a628021fa6d47de | |
parent | c9d393cefb1046142a9fe57b0227ee8d3f5395c4 (diff) | |
download | ekdosis-56f470fca333e41c62f976db64efab40f91c1954.tar.gz |
newfunction checkxmlid(id). it should be some way extended to \label, \cite and the like
-rw-r--r-- | ekdosis.dtx | 55 |
1 files changed, 50 insertions, 5 deletions
diff --git a/ekdosis.dtx b/ekdosis.dtx index 29c3626..c7c2a67 100644 --- a/ekdosis.dtx +++ b/ekdosis.dtx | |||
@@ -5416,6 +5416,16 @@ local function xmlidfound(element) | |||
5416 | return false | 5416 | return false |
5417 | end | 5417 | end |
5418 | 5418 | ||
5419 | local function checkxmlid(str) | ||
5420 | if string.find(str, "^[0-9]") | ||
5421 | or string.find(str, "[:; ]") | ||
5422 | then | ||
5423 | return false | ||
5424 | else | ||
5425 | return true | ||
5426 | end | ||
5427 | end | ||
5428 | |||
5419 | -- Witnesses | 5429 | -- Witnesses |
5420 | listWit = {} | 5430 | listWit = {} |
5421 | idsRend = {} | 5431 | idsRend = {} |
@@ -5477,7 +5487,14 @@ function ekdosis.newwitness(id, | |||
5477 | then | 5487 | then |
5478 | tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\"" | 5488 | tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\"" |
5479 | ..id.. | 5489 | ..id.. |
5480 | "\" already exists as a xml:id. " | 5490 | "\" already exists as an xml:id. " |
5491 | .. | ||
5492 | "Please pick another id.}}") | ||
5493 | elseif not checkxmlid(id) | ||
5494 | then | ||
5495 | tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\"" | ||
5496 | ..id.. | ||
5497 | "\" is not a valid xml:id. " | ||
5481 | .. | 5498 | .. |
5482 | "Please pick another id.}}") | 5499 | "Please pick another id.}}") |
5483 | else | 5500 | else |
@@ -5510,7 +5527,14 @@ function ekdosis.newhand(id, witid, siglum, description) | |||
5510 | then | 5527 | then |
5511 | tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\"" | 5528 | tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\"" |
5512 | ..id.. | 5529 | ..id.. |
5513 | "\" already exists as a xml:id. " | 5530 | "\" already exists as an xml:id. " |
5531 | .. | ||
5532 | "Please pick another id.}}") | ||
5533 | elseif not checkxmlid(id) | ||
5534 | then | ||
5535 | tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\"" | ||
5536 | ..id.. | ||
5537 | "\" is not a valid xml:id. " | ||
5514 | .. | 5538 | .. |
5515 | "Please pick another id.}}") | 5539 | "Please pick another id.}}") |
5516 | else | 5540 | else |
@@ -5560,9 +5584,16 @@ function ekdosis.newscholar(id, siglum) | |||
5560 | then | 5584 | then |
5561 | tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\"" | 5585 | tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\"" |
5562 | ..id.. | 5586 | ..id.. |
5563 | "\" already exists as a xml:id. " | 5587 | "\" already exists as an xml:id. " |
5564 | .. | 5588 | .. |
5565 | "Please pick another id.}}") | 5589 | "Please pick another id.}}") |
5590 | elseif not checkxmlid(id) | ||
5591 | then | ||
5592 | tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\"" | ||
5593 | ..id.. | ||
5594 | "\" is not a valid xml:id. " | ||
5595 | .. | ||
5596 | "Please pick another id.}}") | ||
5566 | else | 5597 | else |
5567 | table.insert(xmlids, {xmlid = id}) | 5598 | table.insert(xmlids, {xmlid = id}) |
5568 | table.sort(xmlids, function(a ,b) return(#a.xmlid > #b.xmlid) end) | 5599 | table.sort(xmlids, function(a ,b) return(#a.xmlid > #b.xmlid) end) |
@@ -6616,9 +6647,16 @@ function ekdosis.newscholar(id, siglum) | |||
6616 | then | 6647 | then |
6617 | tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\"" | 6648 | tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\"" |
6618 | ..id.. | 6649 | ..id.. |
6619 | "\" already exists as a xml:id. " | 6650 | "\" already exists as an xml:id. " |
6620 | .. | 6651 | .. |
6621 | "Please pick another id.}}") | 6652 | "Please pick another id.}}") |
6653 | elseif not checkxmlid(id) | ||
6654 | then | ||
6655 | tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\"" | ||
6656 | ..id.. | ||
6657 | "\" is not a valid xml:id. " | ||
6658 | .. | ||
6659 | "Please pick another id.}}") | ||
6622 | else | 6660 | else |
6623 | table.insert(xmlids, {xmlid = id}) | 6661 | table.insert(xmlids, {xmlid = id}) |
6624 | table.sort(xmlids, function(a ,b) return(#a.xmlid > #b.xmlid) end) | 6662 | table.sort(xmlids, function(a ,b) return(#a.xmlid > #b.xmlid) end) |
@@ -6641,10 +6679,17 @@ local function build_envdiv(str) | |||
6641 | then | 6679 | then |
6642 | tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\"" | 6680 | tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\"" |
6643 | ..div.. | 6681 | ..div.. |
6644 | "\" already exists as a xml:id. " | 6682 | "\" already exists as an xml:id. " |
6645 | .. | 6683 | .. |
6646 | "ekdosis has generated some random id.}}") | 6684 | "ekdosis has generated some random id.}}") |
6647 | return "div-"..math.random(1000,9999) | 6685 | return "div-"..math.random(1000,9999) |
6686 | elseif not checkxmlid(id) | ||
6687 | then | ||
6688 | tex.print("\\unexpanded{\\PackageWarning{ekdosis}{\"" | ||
6689 | ..id.. | ||
6690 | "\" is not a valid xml:id. " | ||
6691 | .. | ||
6692 | "Please pick another id.}}") | ||
6648 | else | 6693 | else |
6649 | table.insert(xmlids, {xmlid = div}) | 6694 | table.insert(xmlids, {xmlid = div}) |
6650 | table.sort(xmlids, function(a ,b) return(#a.xmlid > #b.xmlid) end) | 6695 | table.sort(xmlids, function(a ,b) return(#a.xmlid > #b.xmlid) end) |