[sword-devel] GlobalOptionFilter=OSISNamesBold

David Haslam dfhdfh at protonmail.com
Sun May 25 12:44:03 EDT 2025


Dear Sword-devel community,

I wish to propose a new SWORD configuration key, GlobalOptionFilter=OSISNamesBold, to enhance digital Bible displays by rendering proper names (tagged as in OSIS XML) in bold. This feature would improve readability for Bible students, particularly in unicameral scripts like Thai, Chinese, or Hebrew, where capitalization isn’t available to distinguish names.

With the help of Grok (x.ai) I have explored this idea using Hosea 1 from both the KJV and ThaiKJV, bolding names like Hosea, LORD, and Israel (KJV) or โฮเชยา, พระเยโฮวาห์ (Thai). Such a filter would need to apply CSS font-weight: bold to tags, making names visually distinct in front-ends. For unicameral languages, this addresses the lack of uppercase cues, as demonstrated in Thai (where spaces are minimal) with a ZWSP workaround for adjacent names possibly due to a MarkdownViewer++ bug.

Aside: A key challenge for the KJV is disambiguating short words like “On” (a place in Genesis 41:45; a preposition elsewhere) and “No” (a place in Jeremiah 46:25; the negative determiner), which can be capitalized sentence-initially, risking mis-tagging. A robust name list and contextual rules (e.g., checking for geographical vs. grammatical roles) would be needed to avoid errors.

For details, see our discussion https://grok.com/share/bGVnYWN5_ebe228fc-db77-4801-b244-7335aad0da21

I also experimented with Unicode bold characters for names (e.g., 𝐇𝐨𝐬𝐞𝐚) for platforms like Facebook, but CSS-based bolding is more reliable for SWORD.
Even so, a tick box option to use the same kludge as used by https://yaytext.com/ would be a cool addition to (eg) the Export passage dialog in Xiphos.

I’d love feedback on implementing this filter, including handling edge cases and ensuring compatibility across front-ends.
I'm not one of the back-end software developers, but when this idea came to me on Friday, I simply had to try it out with Grok.

Could we therefore discuss adding OSISNamesBold to the SWORD API?

Here’s the KJV Hosea 1 text with names in bold, pasted from a Markdown code block for easy copying: (styled using Grok's capabilities).

> Hosea 1:1: The word of the **LORD** that came unto **Hosea**, the son of **Beeri**, in the days of **Uzziah**, **Jotham**, **Ahaz**, and **Hezekiah**, kings of **Judah**, and in the days of **Jeroboam** the son of **Joash**, king of **Israel**.
> Hosea 1:2: The beginning of the word of the **LORD** by **Hosea**. And the **LORD** said to **Hosea**, Go, take unto thee a wife of whoredoms and children of whoredoms: for the land hath committed great whoredom, departing from the **LORD**.
> Hosea 1:3: So he went and took **Gomer** the daughter of **Diblaim**; which conceived, and bare him a son.
> Hosea 1:4: And the **LORD** said unto him, Call his name **Jezreel**; for yet a little while, and I will avenge the blood of **Jezreel** upon the house of **Jehu**, and will cause to cease the kingdom of the house of **Israel**.
> Hosea 1:5: And it shall come to pass at that day, that I will break the bow of **Israel** in the valley of **Jezreel**.
> Hosea 1:6: And she conceived again, and bare a daughter. And **God** said unto him, Call her name **Lo-ruhamah**: for I will no more have mercy upon the house of **Israel**; but I will utterly take them away.
> Hosea 1:7: But I will have mercy upon the house of **Judah**, and will save them by the **LORD** their **God**, and will not save them by bow, nor by sword, nor by battle, by horses, nor by horsemen.
> Hosea 1:8: Now when she had weaned **Lo-ruhamah**, she conceived, and bare a son.
> Hosea 1:9: Then said **God**, Call his name **Lo-ammi**: for ye are not my people, and I will not be your **God**.
> Hosea 1:10: Yet the number of the children of **Israel** shall be as the sand of the sea, which cannot be measured nor numbered; and it shall come to pass, that in the place where it was said unto them, Ye are not my people, there it shall be said unto them, Ye are the sons of the living **God**.
> Hosea 1:11: Then shall the children of **Judah** and the children of **Israel** be gathered together, and appoint themselves one head, and they shall come up out of the land: for great shall be the day of **Jezreel**.

You'd need to paste it into a Markdown editor or viewer to see it as we'd wish SWORD to render it.
For a better impression of what it might look like on screen, here's the same passage, but using the YayText kludge:

> Hosea 1:1: The word of the 𝐋𝐎𝐑𝐃 that came unto 𝐇𝐨𝐬𝐞𝐚, the son of 𝐁𝐞𝐞𝐫𝐢, in the days of 𝐔𝐳𝐳𝐢𝐚𝐡, 𝐉𝐨𝐭𝐡𝐚𝐦, 𝐀𝐡𝐚𝐳, and 𝐇𝐞𝐳𝐞𝐤𝐢𝐚𝐡, kings of 𝐉𝐮𝐝𝐚𝐡, and in the days of 𝐉𝐞𝐫𝐨𝐛𝐨𝐚𝐦 the son of 𝐉𝐨𝐚𝐬𝐡, king of 𝐈𝐬𝐫𝐚𝐞𝐥.
> Hosea 1:2: The beginning of the word of the 𝐋𝐎𝐑𝐃 by 𝐇𝐨𝐬𝐞𝐚. And the 𝐋𝐎𝐑𝐃 said to 𝐇𝐨𝐬𝐞𝐚, Go, take unto thee a wife of whoredoms and children of whoredoms: for the land hath committed great whoredom, departing from the 𝐋𝐎𝐑𝐃.
> Hosea 1:3: So he went and took 𝐆𝐨𝐦𝐞𝐫 the daughter of 𝐃𝐢𝐛𝐥𝐚𝐢𝐦; which conceived, and bare him a son.
> Hosea 1:4: And the 𝐋𝐎𝐑𝐃 said unto him, Call his name 𝐉𝐞𝐳𝐫𝐞𝐞𝐥; for yet a little while, and I will avenge the blood of 𝐉𝐞𝐳𝐫𝐞𝐞𝐥 upon the house of 𝐉𝐞𝐡𝐮, and will cause to cease the kingdom of the house of 𝐈𝐬𝐫𝐚𝐞𝐥.
> Hosea 1:5: And it shall come to pass at that day, that I will break the bow of 𝐈𝐬𝐫𝐚𝐞𝐥 in the valley of 𝐉𝐞𝐳𝐫𝐞𝐞𝐥.
> Hosea 1:6: And she conceived again, and bare a daughter. And 𝐆𝐨𝐝 said unto him, Call her name 𝐋𝐨-𝐫𝐮𝐡𝐚𝐦𝐚𝐡: for I will no more have mercy upon the house of 𝐈𝐬𝐫𝐚𝐞𝐥; but I will utterly take them away.
> Hosea 1:7: But I will have mercy upon the house of 𝐉𝐮𝐝𝐚𝐡, and will save them by the 𝐋𝐎𝐑𝐃 their 𝐆𝐨𝐝, and will not save them by bow, nor by sword, nor by battle, by horses, nor by horsemen.
> Hosea 1:8: Now when she had weaned 𝐋𝐨-𝐫𝐮𝐡𝐚𝐦𝐚𝐡, she conceived, and bare a son.
> Hosea 1:9: Then said 𝐆𝐨𝐝, Call his name 𝐋𝐨-𝐚𝐦𝐦𝐢: for ye are not my people, and I will not be your 𝐆𝐨𝐝.
> Hosea 1:10: Yet the number of the children of 𝐈𝐬𝐫𝐚𝐞𝐥 shall be as the sand of the sea, which cannot be measured nor numbered; and it shall come to pass, that in the place where it was said unto them, Ye are not my people, there it shall be said unto them, Ye are the sons of the living 𝐆𝐨𝐝.Hosea 1:11: Then shall the children of 𝐉𝐮𝐝𝐚𝐡 and the children of 𝐈𝐬𝐫𝐚𝐞𝐥 be gathered together, and appoint themselves one head, and they shall come up out of the land: for great shall be the day of 𝐉𝐞𝐳𝐫𝐞𝐞𝐥.

Now for the ThaiKJV implementation: (back to using Markdown)

> Hosea 1:1: พระวจนะของ**พระเยโฮวาห์**ที่มายัง**โฮเชยา** บุตรชายของ**เบเออรี** ในรัชกาลของ**อุสซียาห์** **โยธาม** **อาหัส**และ**เฮเซคียาห์** กษัตริย์ทั้งหลายแห่ง**ยูดาห์** และในรัชกาลของ**เยโรโบอัม** ราชโอรสของ**โยอาช** กษัตริย์แห่ง**อิสราเอล**
> Hosea 1:2: การเริ่มต้นของพระวจนะของ**พระเยโฮวาห์**โดยทาง**โฮเชยา** และ**พระเยโฮวาห์**ตรัสกับ**โฮเชยา**ว่า “ไปซี จงไปรับภรรยาคนหนึ่งสำหรับเจ้าจากพวกหญิงเจ้าชู้ และจากลูก ๆ ของพวกหญิงเจ้าชู้ เพราะว่าแผ่นดินนี้ได้กระทำการเล่นชู้ใหญ่ยิ่ง โดยการไปจาก**พระเยโฮวาห์**”
> Hosea 1:3: ดังนั้นท่านจึงไปและรับนาง**โกเมอร์**บุตรสาวของ**ดิบลาอิม** ผู้ซึ่งได้ตั้งครรภ์ และคลอดบุตรชายคนหนึ่งให้ท่าน
> Hosea 1:4: และ**พระเยโฮวาห์**ตรัสกับท่านว่า “จงเรียกชื่อของเขาว่า **ยิสเรเอล** เพราะว่าอีกไม่นาน และเราจะแก้แค้นให้โลหิตของ**ยิสเรเอล**บนวงศ์วานของ**เยฮู** และจะทำให้ราชอาณาจักรของวงศ์วานแห่ง**อิสราเอล**สิ้นสุดลง
> Hosea 1:5: และต่อมาในวันนั้น เราจะหักคันธนูของ**อิสราเอล**ในหุบเขาแห่ง**ยิสเรเอล**”
> Hosea 1:6: และต่อมานางก็ตั้งครรภ์อีก และคลอดบุตรสาวคนหนึ่ง และ**พระเจ้า**ตรัสกับท่านว่า “จงเรียกชื่อของเธอว่า **โลรุหะมาห์** เพราะเราจะไม่มีความเมตตาต่อวงศ์วานแห่ง**อิสราเอล**อีกต่อไป แต่เราจะเอาพวกเขาออกไปให้พ้นเสียอย่างสิ้นเชิง
> Hosea 1:7: แต่เราจะมีความเมตตาต่อวงศ์วานของ**ยูดาห์** และจะช่วยพวกเขาให้รอดพ้นโดย**พระเยโฮวาห์****พระเจ้า**ของพวกเขา และจะไม่ช่วยพวกเขาให้รอดพ้นโดยคันธนู หรือโดยดาบ หรือโดยการสู้รบ โดยม้าทั้งหลาย หรือโดยเหล่าทหารม้า”
> Hosea 1:8: บัดนี้เมื่อนางให้**โลรุหะมาห์**หย่านมแล้ว นางก็ตั้งครรภ์ และคลอดบุตรชายคนหนึ่ง
> Hosea 1:9: แล้ว**พระเจ้า**ตรัสว่า “จงเรียกชื่อของเขาว่า **โลอัมมี** เพราะเจ้าทั้งหลายไม่ใชะประชากรของเรา และเราจะไม่เป็น**พระเจ้า**ของพวกเจ้า”
> Hosea 1:10: แต่จำนวนของลูกหลานของ**อิสราเอล**จะเป็นเหมือนเม็ดทรายแห่งทะเล ซึ่งไม่สามารถถูกตวงหรือนับได้ และต่อมาในสถานที่ซึ่งเคยกล่าวแก่พวกเขาว่า “เจ้าทั้งหลายไม่ใช่ประชากรของเรา” ที่นั่นจะกล่าวแก่พวกเขาว่า “เจ้าทั้งหลายเป็นบุตรชายทั้งหลายของ**พระเจ้า**ผู้ทรงพระชนม์อยู่” Hosea 1:11: และคน**ยูดาห์**กับคน**อิสราเอล**จะถูกรวมเข้าด้วยกัน และจะแต่งตั้งผู้หนึ่งให้เป็นหัวหน้าของพวกเขา และพวกเขาจะขึ้นมาจากแผ่นดินนั้น เพราะวันของ**ยิสเรเอล**จะยิ่งใหญ่

I tested these Markdown outputs successfully using the MarkdownViewer++ plugin for Notepad++

In order to test such a software enhancement we, would need to build a Bible module in which every name in the text was wrapped in the OSIS XML name element.
There is such a module called KJVX. It was being developed as an eXperimental version of the KJV module several years ago, but it's now out of date compared to the more recent updates to our flagship KJV module. I can send it to any developer upon request.

Having seen Grok's capabilities, it's now not beyond the realm of possibility to automate the tagging of names in any OSIS XML file using the most suitable LLM AI agent.

Best regards,

David

Sent with [Proton Mail](https://pr.tn/ref/SWXT9A5YZ67G) secure email.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://crosswire.org/pipermail/sword-devel/attachments/20250525/9b9a60fd/attachment-0001.htm>


More information about the sword-devel mailing list