Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Merge from trunk |
|---|---|
| Timelines: | family | ancestors | descendants | both | zmk |
| Files: | files | file ages | folders |
| SHA3-256: |
9aec1d38bb38f35bf25925cba23fcbf4 |
| User & Date: | stern 2024-05-31 15:46:14.553 |
Context
|
2024-05-31
| ||
| 15:48 | Initial version of zmk->Sx parser ... (check-in: 955147c904 user: stern tags: trunk) | |
| 15:46 | Merge from trunk ... (Leaf check-in: 9aec1d38bb user: stern tags: zmk) | |
|
2024-04-22
| ||
| 14:51 | Package sxhtml was renamed to sxwebs/sxhtml ... (check-in: 3bbfcfd939 user: stern tags: trunk) | |
|
2024-04-17
| ||
| 16:24 | Merge from trunk and rename package to t73f.de/r/zsc ... (check-in: 417c3366e3 user: stern tags: zmk) | |
Changes
Changes to api/urlbuilder.go.
| ︙ | ︙ | |||
9 10 11 12 13 14 15 | // // SPDX-License-Identifier: EUPL-1.2 // SPDX-FileCopyrightText: 2020-present Detlef Stern //----------------------------------------------------------------------------- package api | | < < < < < > | < < < < < > > > | > > > > | < < < < < < < < | < < < < < < < < < < < < < < < < | | < < < < < < < | < | < | < < | < | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
//
// SPDX-License-Identifier: EUPL-1.2
// SPDX-FileCopyrightText: 2020-present Detlef Stern
//-----------------------------------------------------------------------------
package api
import "t73f.de/r/webs/urlbuilder"
// URLBuilder should be used to create zettelstore URLs.
type URLBuilder struct {
base urlbuilder.URLBuilder
prefix string
}
// NewURLBuilder creates a new URL builder with the given prefix and key.
func NewURLBuilder(prefix string, key byte) *URLBuilder {
for len(prefix) > 0 && prefix[len(prefix)-1] == '/' {
prefix = prefix[0 : len(prefix)-1]
}
result := URLBuilder{prefix: prefix}
if key != '/' {
result.base.AddPath(string([]byte{key}))
}
return &result
}
// Clone an URLBuilder
func (ub *URLBuilder) Clone() *URLBuilder {
cpy := new(URLBuilder)
ub.base.Copy(&cpy.base)
cpy.prefix = ub.prefix
return cpy
}
// SetZid sets the zettel identifier.
func (ub *URLBuilder) SetZid(zid ZettelID) *URLBuilder {
ub.base.AddPath(string(zid))
return ub
}
// AppendPath adds a new path element
func (ub *URLBuilder) AppendPath(p string) *URLBuilder {
ub.base.AddPath(p)
return ub
}
// AppendKVQuery adds a new key/value query parameter
func (ub *URLBuilder) AppendKVQuery(key, value string) *URLBuilder {
ub.base.AddQuery(key, value)
return ub
}
// AppendQuery adds a new query
func (ub *URLBuilder) AppendQuery(value string) *URLBuilder {
if value != "" {
ub.base.AddQuery(QueryKeyQuery, value)
}
return ub
}
// ClearQuery removes all query parameters.
func (ub *URLBuilder) ClearQuery() *URLBuilder {
ub.base.RemoveQueries()
return ub
}
// SetFragment stores the fragment
func (ub *URLBuilder) SetFragment(s string) *URLBuilder {
ub.base.SetFragment(s)
return ub
}
// String produces a string value.
func (ub *URLBuilder) String() string {
return ub.prefix + ub.base.String()
}
|
Changes to client/client.go.
| ︙ | ︙ | |||
53 54 55 56 57 58 59 | myURL := *u myURL.User = nil myURL.ForceQuery = false myURL.RawQuery = "" myURL.Fragment = "" myURL.RawFragment = "" base := myURL.String() | < < < | 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
myURL := *u
myURL.User = nil
myURL.ForceQuery = false
myURL.RawQuery = ""
myURL.Fragment = ""
myURL.RawFragment = ""
base := myURL.String()
c := Client{
base: base,
client: http.Client{
Timeout: 10 * time.Second,
Transport: &http.Transport{
DialContext: (&net.Dialer{
Timeout: 5 * time.Second, // TCP connect timeout
|
| ︙ | ︙ |
Changes to go.mod.
1 2 3 4 | module t73f.de/r/zsc go 1.22 | > | > > > | 1 2 3 4 5 6 7 8 9 | module t73f.de/r/zsc go 1.22 require ( t73f.de/r/sx v0.0.0-20240418072254-b6eff7d787f9 t73f.de/r/sxwebs v0.0.0-20240422143910-320427142398 t73f.de/r/webs v0.0.0-20240422103534-8f5067bc11bc ) |
Changes to go.sum.
|
| | | > > > > | 1 2 3 4 5 6 | t73f.de/r/sx v0.0.0-20240418072254-b6eff7d787f9 h1:lVPkYN8+J9f6JA9SmoF6icvpLxz4u3h1MCTuDYJYwdU= t73f.de/r/sx v0.0.0-20240418072254-b6eff7d787f9/go.mod h1:G9pD1j2R6y9ZkPBb81mSnmwaAvTOg7r6jKp/OF7WeFA= t73f.de/r/sxwebs v0.0.0-20240422143910-320427142398 h1:/G054FNxS8zEYbdhOTNk+GhdhjWBVt398FTm1Ud4A4o= t73f.de/r/sxwebs v0.0.0-20240422143910-320427142398/go.mod h1:PtIkpRfTTiQITciKaWcTiAwy9FJ63WSQKciTp/dJbOA= t73f.de/r/webs v0.0.0-20240422103534-8f5067bc11bc h1:i6tm/AEJUs8J8m7iDP8bTZgM0wYERh97RR47soJglxs= t73f.de/r/webs v0.0.0-20240422103534-8f5067bc11bc/go.mod h1:UGAAtul0TK5ACeZ6zTS3SX6GqwMFXxlUpHiV8oqNq5w= |
Changes to shtml/shtml.go.
| ︙ | ︙ | |||
17 18 19 20 21 22 23 | import ( "fmt" "net/url" "strconv" "strings" "t73f.de/r/sx" | | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import ( "fmt" "net/url" "strconv" "strings" "t73f.de/r/sx" "t73f.de/r/sxwebs/sxhtml" "t73f.de/r/zsc/api" "t73f.de/r/zsc/attrs" "t73f.de/r/zsc/sz" "t73f.de/r/zsc/text" ) // Evaluator will transform a s-expression that encodes the zettel AST into an s-expression |
| ︙ | ︙ |
Changes to sz/zmk/post-processor.go.
| ︙ | ︙ | |||
132 133 134 135 136 137 138 |
return text.Cons(blocks).Cons(attrs).Cons(sym)
}
func postProcessRegionVerse(pp *postProcessor, rn *sx.Pair, env *sx.Pair) *sx.Pair {
return postProcessRegion(pp, rn, env.Cons(sx.Cons(symInVerse, nil)))
}
| | | 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
return text.Cons(blocks).Cons(attrs).Cons(sym)
}
func postProcessRegionVerse(pp *postProcessor, rn *sx.Pair, env *sx.Pair) *sx.Pair {
return postProcessRegion(pp, rn, env.Cons(sx.Cons(symInVerse, nil)))
}
func postProcessVerbatim(_ *postProcessor, verb *sx.Pair, _ *sx.Pair) *sx.Pair {
if content, isString := sx.GetString(verb.Tail().Tail().Car()); isString && content.GetValue() != "" {
return verb
}
return nil
}
func postProcessHeading(pp *postProcessor, hn *sx.Pair, env *sx.Pair) *sx.Pair {
|
| ︙ | ︙ |