diff options
author | Volker Krause <vkrause@kde.org> | 2021-05-11 17:42:43 +0200 |
---|---|---|
committer | Volker Krause <vkrause@kde.org> | 2021-05-16 07:37:34 +0000 |
commit | bba49c3924a84cf64cda84bd2a27ed26ae796687 (patch) | |
tree | b93c5faac2c8c8d69512f85952982e28659cfdaa | |
parent | c28008a109cdd23c3de4a3fdceb12629431b03f1 (diff) | |
download | extra-cmake-modules-bba49c3924a84cf64cda84bd2a27ed26ae796687.tar.gz extra-cmake-modules-bba49c3924a84cf64cda84bd2a27ed26ae796687.tar.bz2 |
Handle text-less tags
Contrary to the comment those exist (e.g. ul, ol), this just wasn't noticed
as due to the script-enforced formatting those always contain some spaces.
This resulted in different structures between English and translated
description texts. With this change all language variants show the same
structure.
-rwxr-xr-x | toolchain/generate-fastlane-metadata.py | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/toolchain/generate-fastlane-metadata.py b/toolchain/generate-fastlane-metadata.py index e6f377a1..e917484e 100755 --- a/toolchain/generate-fastlane-metadata.py +++ b/toolchain/generate-fastlane-metadata.py @@ -85,28 +85,35 @@ def readText(elem, found, allLanguages): # If there is text available, we'll want to extract it # Additionally, if this element has any children, make sure we read those as well - # It isn't clear if it is possible for an item to not have text, but to have children which do have text - # The code will currently skip these if they're encountered - if elem.text: - if elem.tag in supportedRichTextTags: + if elem.tag in supportedRichTextTags: + if (elem.text and elem.text.strip()) or lang: found[lang] += '<' + elem.tag + '>' + else: + for l in allLanguages: + found[l] += '<' + elem.tag + '>' + + if elem.text and elem.text.strip(): found[lang] += elem.text - subOutput = {} - for child in elem: - if not child.get('{http://www.w3.org/XML/1998/namespace}lang') and len(subOutput) > 0: - applyLanguageFallback(subOutput, allLanguages) - for l in allLanguages: - found[l] += subOutput[l] - subOutput = {} - readText(child, subOutput, allLanguages) - if len(subOutput) > 0: + subOutput = {} + for child in elem: + if not child.get('{http://www.w3.org/XML/1998/namespace}lang') and len(subOutput) > 0: applyLanguageFallback(subOutput, allLanguages) for l in allLanguages: found[l] += subOutput[l] - - if elem.tag in supportedRichTextTags: + subOutput = {} + readText(child, subOutput, allLanguages) + if len(subOutput) > 0: + applyLanguageFallback(subOutput, allLanguages) + for l in allLanguages: + found[l] += subOutput[l] + + if elem.tag in supportedRichTextTags: + if (elem.text and elem.text.strip()) or lang: found[lang] += '</' + elem.tag + '>' + else: + for l in allLanguages: + found[l] += '</' + elem.tag + '>' # Finally, if this element is a HTML Paragraph (p) or HTML List Item (li) make sure we add a new line for presentation purposes if elem.tag == 'li' or elem.tag == 'p': |