During the course of my fruitful conversation with Grok yesterday, an
interesting issue became apparent with Markdown.
I've made this problem visible to developers by creating a new
[issue](https://github.com/nea/MarkdownViewerPlusPlus/issues/168) for
MarkdownViewer++.
Best regards,
David
Sent with [Proton Mail](https://pr.tn/ref/SWXT9A5YZ67G) secure email.
On Sunday, May 25th, 2025 at 5:44 PM, David Haslam <dfh...@protonmail.com>
wrote:
> 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.
_______________________________________________
sword-devel mailing list: sword-devel@crosswire.org
http://crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page