diff options
| author | Shulhan <m.shulhan@gmail.com> | 2020-04-12 00:16:02 +0700 |
|---|---|---|
| committer | Shulhan <m.shulhan@gmail.com> | 2020-04-12 00:16:02 +0700 |
| commit | 3d9f0baa2c96b101ec8047a5969c7ece14e16991 (patch) | |
| tree | 131f8f4090b8cad16198b4bd776f0d07a7f716e6 /definisi_kata.go | |
| parent | 9d9505250d549b7a5cca9c0cd2ebfc8359bfcd45 (diff) | |
| download | kamusku-3d9f0baa2c96b101ec8047a5969c7ece14e16991.tar.xz | |
all: tangani kata tidak baku
Sebelumnya bila kata adalah kata tidak baku, definisi kata akan berisi
karaketer "→" saja.
Perubahan ini memeriksa bila definisi kata adalah "→" maka akan dianggap
tidak baku dan kata yang baku berada satu elemen sesudahnya.
Diffstat (limited to 'definisi_kata.go')
| -rw-r--r-- | definisi_kata.go | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/definisi_kata.go b/definisi_kata.go index 0060a97..8d812f8 100644 --- a/definisi_kata.go +++ b/definisi_kata.go @@ -5,6 +5,7 @@ package kbbi import ( + "fmt" "strings" "github.com/shuLhan/share/lib/net/html" @@ -21,14 +22,14 @@ type DefinisiKata struct { Contoh []string `json:"contoh,omitempty"` } -func parseDefinisiKata(li *html.Node) (defKata *DefinisiKata) { +func parseDefinisiKata(in string, li *html.Node) (defKata *DefinisiKata, err error) { elFont := li.GetFirstChild() if elFont == nil || elFont.Data != tagNameFont { - return nil + return nil, nil } elItalic := elFont.GetFirstChild() if elItalic == nil || elItalic.Data != tagNameItalic { - return nil + return nil, nil } defKata = &DefinisiKata{} @@ -44,13 +45,24 @@ func parseDefinisiKata(li *html.Node) (defKata *DefinisiKata) { el := elFont.GetNextSibling() if el == nil { - return defKata + return defKata, nil } defKata.Isi = strings.TrimSpace(libstrings.SingleSpace(el.Data)) + if defKata.Isi == "→" { + defKata.Isi = "" + el = el.GetNextSibling() + if el == nil || el.Data != tagNameAnchor { + return nil, nil + } + el = el.GetFirstChild() + return nil, fmt.Errorf(`%q adalah bentuk tidak baku dari %q`, + in, el.Data) + } + if defKata.Isi[len(defKata.Isi)-1] != ':' { - return defKata + return defKata, nil } defKata.Isi = defKata.Isi[:len(defKata.Isi)-1] @@ -78,5 +90,5 @@ func parseDefinisiKata(li *html.Node) (defKata *DefinisiKata) { el = el.GetNextSibling() } - return defKata + return defKata, nil } |
