Skip to content

HFML

HFML stands for The human-friendly markup language

Import HFML Files

Here is the hfml file kangyur_01 used in following code snippet.

from pathlib import Path

from openpecha.formatters import HFMLFormatter

hfml_fn = Path("tests") / "formatters" / "hfml" / "data" / "kangyur_01.txt"
m_text = hfml_fn.read_text()

formatter = HFMLFormatter()

text = formatter.text_preprocess(m_text)
formatter.build_layers(text, len([text]))
result = formatter.get_base_text()

Tagset

Pagination tags

[1]

Type: Pagination

Syntax: [<page number>]

Use: Mark for modern pagination information in modern book or arabic page numbers in traditional text layout.

Text Sample:

image

[360] ༄༅། །རྒྱ་གར་སྐད་དུ། དྷརྨ་ཙཀྲ་པྲ་བརྟ་ན་སཱུ་ཏྲ། བོད་སྐད་དུ། ཆོས་ཀྱི་འཁོར་ལོ་རབ་ཏུ་བསྐོར་བའི་མདོ། [..] དྲང་སྲོང་ལྷུང་བ་རི་དགས་རྒྱུ་བའི་གནས་ན་བཞུགས་སོ། །དེ་ནས་བཅོམ་ལྡན་འདས་ཀྱིས་དགེ་སློང་ལྔ་སྡེ་རྣམས་བོས་ཏེ་བཀའ་[..] དང་དམན་པར་འགྱུར་རོ། །སོ་སོའི་སྐྱེ་བོ་རྣམས་ནི་དོན་མེད་པ་དང་ལྡན་པའི་ཕྱིར་གང་སུ་དག་ལུས་དུབ་པ་དང་འབྲལ་བའི་སྡུག་[..]  


[1a]

Type: Pecha folio pagination

Syntax: [<page number><a/b side>]

Use: Tag for traditional pecha page numbers spelled out in Tibetan on the front side of a folio.

Text Sample:

image

[180b] ༄༅། །རྒྱ་གར་སྐད་དུ། དྷརྨ་ཙཀྲ་པྲ་བརྟ་ན་སཱུ་ཏྲ། བོད་སྐད་དུ། ཆོས་ཀྱི་འཁོར་ལོ་རབ་ཏུ་བསྐོར་བའི་མདོ། [..] དྲང་སྲོང་ལྷུང་བ་རི་དགས་རྒྱུ་བའི་གནས་ན་བཞུགས་སོ། །དེ་ནས་བཅོམ་ལྡན་འདས་ཀྱིས་དགེ་སློང་ལྔ་སྡེ་རྣམས་བོས་ཏེ་བཀའ་[..] དང་དམན་པར་འགྱུར་རོ། །སོ་སོའི་སྐྱེ་བོ་རྣམས་ནི་དོན་མེད་པ་དང་ལྡན་པའི་ཕྱིར་གང་སུ་དག་ལུས་དུབ་པ་དང་འབྲལ་བའི་སྡུག་[..]  

back to top


[1a.1]

Type: Pecha pagination

Syntax: [<page number><a/b side>.<line number>]

Use: Tag for line numbers in traditional pecha layout.

Text Sample:

image

[180b] [180b.1]༄༅། །རྒྱ་གར་སྐད་དུ། དྷརྨ་ཙཀྲ་པྲ་བརྟ་ན་སཱུ་ཏྲ། བོད་སྐད་དུ། ཆོས་ཀྱི་འཁོར་ལོ་རབ་ཏུ་བསྐོར་བའི་མདོ། [..] [180b.2]དྲང་སྲོང་ལྷུང་བ་རི་དགས་རྒྱུ་བའི་གནས་ན་བཞུགས་སོ། །དེ་ནས་བཅོམ་ལྡན་འདས་ཀྱིས་དགེ་སློང་ལྔ་སྡེ་རྣམས་བོས་ཏེ་བཀའ་[..] [180b.3]དང་དམན་པར་འགྱུར་རོ། །སོ་སོའི་སྐྱེ་བོ་རྣམས་ནི་དོན་མེད་པ་དང་ལྡན་པའི་ཕྱིར་གང་སུ་དག་ལུས་དུབ་པ་དང་འབྲལ་བའི་སྡུག་[..]  

back to top


TOC tags

{T###} text ID

{T###-##} section/chapter ID

back to top



Footnote tags

[^##] inline note marker [^##]: note content prefix

Endnote tags without page reference

(##) endnote marker (##): endnote content prefix

[###](##): endnote content prefix


(1)

Type: Note maker

Syntax: (<note number>)]

Use: Marker for both footnotes and endnotes

Text Sample:

image

[517] ༄༅། །ཆོས་ཀྱི་འཁོར་ལོ་རབ་ཏུ་བསྐོར་བའི་མདོ།(1)

back to top


[100](1):

Type: Endnote content prefix

Syntax: [<page reference>](<note number>)]

Use: Marker for the content of endnotes located at the end of texts.

Text Sample:

[517](1) མཚན་བྱང་འདི་ཆོས་ཚན་འདིའི་མཚན་བོད་སྐད་དུ་སྨོས་པ་[..] མདོ་ཚན་བཅུ་གསུམ་སྣར་ཐང་པར་དུ་མདོ་ཨ་པའི་གཤམ་དུ་[..]

back to top


Spell-checking tags

Type: potential error, correction suggestion

Syntax: (error,suggestion) 

Use: Marker for the content of endnotes located at the end of texts.

Text Sample:


Critical aparatus

[? ] uncertain reading

\<* \> editorial restoration of lost text

⟨* ⟩ editorial addition of omitted text

⟪ ⟫ scribal insertion

{ } editorial deletion of redundant text

{{ }} scribal deletion

/// textual loss at left or right edge of support

Layout tags

བོད། bo ཨིན། en རྟགས། tag དཔེར་བརྗོད། Example
ཡིག་ཆུང་། contains smaller text size \ \
མཛད་པ་པོ། Name\ of an author, personal or corporate, of a work. \ \
དཔེ་ཆའི་མཚན་བྱང་། contains pecha title \ \
པོ་ཏིའི་མཚན་བྱང་། contains poti title \ \
ལེའུ་ཡི་མཚན་བྱང་། contains chapter title \ \

Notes

  • we don't encode lines as annotations and generate them on the fly from the pagination layer and line returns in the base

Sources

  • https://ubsicap.github.io/usfm/
  • [gandhari.org]\<https://gandhari.org/a_dpreface.php>
  • [esukhia/derge-kangyur]\<https://github.com/Esukhia/derge-kangyur>
  • https://www.markdownguide.org/extended-syntax/#fn:bignote