shelf

package
v0.0.0-...-adbbca2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 15, 2024 License: GPL-3.0 Imports: 14 Imported by: 0

Documentation

Overview

ファイルとメタファイルを収集する

Index

Constants

View Source
const (
	ShelfRegexp   = `^(?P<id>\w{24})_(?P<base>.*)\.pdf$`
	IDFormat      = "20060102T150405"
	DocExtension  = ".pdf"
	MetaExtension = ".toml"
	MetaPath      = "index.toml"
)

Variables

View Source
var (
	ErrInputDir    = fmt.Errorf("ファイルを入力を想定している箇所でディレクトリが入力された")
	ErrInputNotPDF = fmt.Errorf("PDF以外が入力された")
)
View Source
var (
	ErrAlreadyFormatted = fmt.Errorf("すでにフォーマットを満たしている")
)

Functions

func GetPtr

func GetPtr[T any](x T) *T

func UniqTags

func UniqTags(views []View) []string

func ValidFormat

func ValidFormat(file os.File) bool

IDフォーマットを満たすかを判定する

Types

type Book

type Book struct {
	File os.File
}

shelfフォーマットを満たす元ファイル(PDFなど) "{id}_{base}.{ext}" baseは人が見て識別する用で、プログラム側からは参照しない

func NewBook

func NewBook(file os.File) *Book

shelfフォーマットを満たすファイルなのを確認して初期化する

func Register

func Register(originfile *os.File) (*Book, error)

入力パスに対して、ID付きファイル名にリネーム

func (*Book) AppendMeta

func (b *Book) AppendMeta(metas Metas) error

func (*Book) ExtractImageBase64

func (b *Book) ExtractImageBase64() (string, error)

func (*Book) ExtractPDFTitle

func (b *Book) ExtractPDFTitle() (string, error)

func (*Book) GetFullPath

func (b *Book) GetFullPath() string

ファイルのフルパスを取得する

func (*Book) GetID

func (b *Book) GetID() (BookID, error)

ファイルのIDを取得する

type BookID

type BookID string

ファイル名の一部となるID 読み書きで使う

func NewBookID

func NewBookID(t time.Time) BookID

type Meta

type Meta struct {
	Title *string   `toml:"title"`
	TODO  *TODOType `toml:"todo"`
	Tags  *[]string `toml:"tags"`
}

1ドキュメントがもつメタ情報

type Metas

type Metas map[string]Meta

func GetMetas

func GetMetas(tomlContent string) (Metas, error)

type TODOType

type TODOType string
var (
	TODOTypeNONE TODOType = "NONE"
	TODOTypeTODO TODOType = "TODO"
	TODOTypeWIP  TODOType = "WIP"
	TODOTypeDONE TODOType = "DONE"
)

type View

type View struct {
	ID       BookID
	FilePath string
	Meta     Meta
}

func FilterViewsByTag

func FilterViewsByTag(tag string, views []View) []View

func GenerateViews

func GenerateViews(dirpath string, metas Metas) []View

メタデータを収集する

func SkipCursor

func SkipCursor(id string, views []View) []View

| discard | return | |<------->|cursor|<------>|

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL