Pure package detail
mdtable
gno.land/p/moul/mdtable/v1
Indexed deployment identity with independently loaded latest RPC source. Functions and Render are realm-only RPC capabilities.
Indexed deployment
Identity
- Package path
- gno.land/p/moul/mdtable/v1
- Block
- 23344
- Deployed (UTC)
- Transaction
- 2MCcs8a4m2H7AbNFzewZ8WM0tsvwYS+g5GnRVoWbdHI=
Latest RPC state
Source
// Package mdtable provides a simple way to create Markdown tables.
//
// Example usage:
//
// import "gno.land/p/moul/mdtable/v1"
//
// func Render(path string) string {
// table := mdtable.Table{
// Headers: []string{"ID", "Title", "Status", "Date"},
// }
// table.Append([]string{"#1", "Add a new validator", "succeed", "2024-01-01"})
// table.Append([]string{"#2", "Change parameter", "timed out", "2024-01-02"})
// return table.String()
// }
//
// Output:
//
// | ID | Title | Status | Date |
// | --- | --- | --- | --- |
// | #1 | Add a new validator | succeed | 2024-01-01 |
// | #2 | Change parameter | timed out | 2024-01-02 |
package mdtable
import (
"strings"
)
type Table struct {
Headers []string
Rows [][]string
// XXX: optional headers alignment.
}
func (t *Table) Append(row []string) {
t.Rows = append(t.Rows, row)
}
func (t Table) String() string {
// XXX: switch to using text/tabwriter when porting to Gno to support
// better-formatted raw Markdown output.
if len(t.Headers) == 0 && len(t.Rows) == 0 {
return ""
}
var sb strings.Builder
if len(t.Headers) == 0 {
t.Headers = make([]string, len(t.Rows[0]))
}
// Print header.
sb.WriteString("| " + strings.Join(t.Headers, " | ") + " |\n")
sb.WriteString("|" + strings.Repeat(" --- |", len(t.Headers)) + "\n")
// Print rows.
for _, row := range t.Rows {
escapedRow := make([]string, len(row))
for i, cell := range row {
escapedRow[i] = strings.ReplaceAll(cell, "|", "|") // Escape pipe characters.
}
sb.WriteString("| " + strings.Join(escapedRow, " | ") + " |\n")
}
return sb.String()
}
The verified vm/qfuncs operation accepts realm paths only.
Pure packages expose source files but do not have Realm Render.