Christian Muehlhaeuser
fd138a00bd
Add line break before example images
2019-12-07 08:52:33 +01:00
Christian Muehlhaeuser
c9247397ec
Add markdown & style reference examples and generator
2019-12-07 08:51:17 +01:00
Christian Muehlhaeuser
9d63f7125d
Add markdown examples to style reference
2019-12-07 08:11:08 +01:00
Christian Muehlhaeuser
9205d5564d
Further updates to the style reference
2019-12-07 07:55:54 +01:00
Christian Muehlhaeuser
f2201cad0a
Improved readability of style reference
2019-12-07 06:10:26 +01:00
Christian Muehlhaeuser
35500510aa
Documented more style elements
2019-12-07 06:08:16 +01:00
Christian Muehlhaeuser
dbebdf40b1
Fix typo in style README
2019-12-07 05:46:25 +01:00
Christian Muehlhaeuser
8ba9005b0c
Started documenting elements & their style attributes
2019-12-07 05:45:45 +01:00
Christian Muehlhaeuser
bb6beac736
Move gallery and images to styles/gallery/
2019-12-07 05:08:51 +01:00
Christian Muehlhaeuser
8f6a4cebb3
Margin changes in dark style
2019-12-07 05:06:41 +01:00
Christian Muehlhaeuser
c8a61e56fb
Fix gallery generator script
2019-12-06 19:35:40 +01:00
Christian Muehlhaeuser
5209f28a71
Add NoTTY style to gallery
2019-12-06 19:35:22 +01:00
Christian Muehlhaeuser
bb22f8ba20
Use indents instead of margins in notty style
2019-12-06 19:18:29 +01:00
Christian Muehlhaeuser
e45cc82a64
Add notty style
2019-12-06 19:12:49 +01:00
Christian Muehlhaeuser
6fe32ed145
Embed styles in gold library
2019-12-06 01:34:27 +01:00
Christian Muehlhaeuser
6f31dbf5ec
Go mod tidy
2019-12-06 00:55:20 +01:00
Christian Muehlhaeuser
239b3ec93c
Inherit prefix and suffix from parent style on demand
2019-12-06 00:24:31 +01:00
Christian Muehlhaeuser
b62a54035e
Don't apply hardcoded markup for heading elements
2019-12-06 00:24:06 +01:00
Christian Muehlhaeuser
8cbb296ffb
Fix reflowing nested lists
2019-12-05 22:28:34 +01:00
Christian Muehlhaeuser
08ffc82515
Reflow text in paragraph, strip line-breaks and utilize the available width
2019-12-05 22:03:35 +01:00
Christian Muehlhaeuser
7eec968514
Construct one combined true-color ANSI sequence for foreground and background colors
2019-12-05 20:46:05 +01:00
Christian Muehlhaeuser
78e36a02d0
Use ElementStyle as a value instead of pointer, so we can drop all the annoying nil checks
2019-12-05 18:05:29 +01:00
Christian Muehlhaeuser
556c490ac4
Fix nil pointer access when style is unused
2019-12-05 17:52:22 +01:00
Christian Muehlhaeuser
e608d2e25e
Omit link's text if it's equal to the URL it's pointing to
2019-12-05 17:45:38 +01:00
Christian Muehlhaeuser
c4b02ad80d
Cascade other style options to children when requested
2019-12-05 14:07:10 +01:00
Christian Muehlhaeuser
eaed263d06
Cascade Heading style into new H1, H2, ..., H6 styles
2019-12-05 14:05:35 +01:00
Christian Muehlhaeuser
12d8828d4b
Remove spurious Indent style element
2019-12-05 13:29:03 +01:00
Christian Muehlhaeuser
924d332de2
Support 24bit color space in terminals with support
...
Currently supported by xterm, Konsole, gnome Terminal, VTE, iTerm2.
2019-12-05 12:19:17 +01:00
Christian Muehlhaeuser
cb80cfbb36
Use color helper to retrieve correct ANSI color index
2019-12-05 11:55:24 +01:00
Christian Muehlhaeuser
39a6da5fe7
Support hex color values in style config
...
While we don't support extended color ranges just yet, this approximates
the hex value to the closest color value in the ANSI 256-color chart.
2019-12-05 11:43:56 +01:00
Christian Muehlhaeuser
31ad9136b5
Correctly word-wrap and pad unicode characters
2019-12-05 10:37:31 +01:00
Christian Muehlhaeuser
82d6db7c7d
Add new element style 'enumeration', used for items in ordered lists
2019-12-05 10:05:15 +01:00
Christian Muehlhaeuser
1e195cc3de
Don't render List's prefix in ListElement, as it later gets replaced by a ParagraphElement
2019-12-05 09:50:17 +01:00
Christian Muehlhaeuser
60e71effec
HeadingElement now supports indent & margin
2019-12-05 09:44:20 +01:00
Christian Muehlhaeuser
4c98804213
Move BlockStack into a separate file blockstack.go
2019-12-05 08:06:08 +01:00
Christian Muehlhaeuser
5096c6696e
Write Element's Entering-output to the correct buffer
2019-12-04 13:54:17 +01:00
Christian Muehlhaeuser
512abfe4c0
Create BlockElement even if there's no style for it
2019-12-04 13:42:40 +01:00
Christian Muehlhaeuser
15d9fd129b
Handle Lists as a block element, which supports margins & indents
2019-12-04 13:37:14 +01:00
Christian Muehlhaeuser
038f2dd684
Handle write buffers & cascading styles in BlockStack
2019-12-04 13:36:31 +01:00
Christian Muehlhaeuser
9134cddd48
Fix filename baseelement.go
2019-12-04 09:51:59 +01:00
Christian Muehlhaeuser
ed7def899e
Only remove paragraph indent/margin for list items
2019-12-04 09:51:31 +01:00
Christian Muehlhaeuser
550c0bdbd5
Don't indent line if all we're outputting is ANSI sequences
2019-12-04 08:56:15 +01:00
Christian Muehlhaeuser
f7244397d2
Support margins in block elements
2019-12-04 06:59:53 +01:00
Christian Muehlhaeuser
419fda75c9
Support margin style flag
2019-12-04 06:58:28 +01:00
Christian Muehlhaeuser
8bcc61ace1
Use IndentFunc to style indents correctly
2019-12-04 06:38:55 +01:00
Christian Muehlhaeuser
ca06d9968c
Add StyleStack.Parent, returning the current style's parent
2019-12-04 06:38:10 +01:00
Christian Muehlhaeuser
9974d6bad9
Support handling indents with an IndentFunc
2019-12-04 06:37:37 +01:00
Christian Muehlhaeuser
b518696b44
Use renderText even without an active style
2019-12-04 05:47:57 +01:00
Christian Muehlhaeuser
afd83210ea
Simplify code
2019-12-04 05:38:54 +01:00
Christian Muehlhaeuser
92e1c2dde8
Use PaddingWriter to render paragraphs
2019-12-04 05:21:37 +01:00
Christian Muehlhaeuser
c2a1ec4ccd
Use IndentWriter proxied by AnsiWriter
2019-12-04 05:20:30 +01:00
Christian Muehlhaeuser
7908b07c31
Reset and restore ANSI state before writing indent
2019-12-04 05:19:04 +01:00
Christian Muehlhaeuser
38b088ef2d
Add PaddingWriter, an io.Writer proxy, that keeps lines at (least at) equal width
2019-12-04 05:17:54 +01:00
Christian Muehlhaeuser
ad9bc4cb46
Add AnsiWriter, a stateful io.Writer proxy that tracks the latest ANSI color sequence
2019-12-04 05:17:05 +01:00
Christian Muehlhaeuser
7184df4a14
Add StyleStack.Indent and .With
2019-12-04 04:54:57 +01:00
Christian Muehlhaeuser
324339551c
Remove indent for list-item paragraphs
2019-12-02 16:01:43 +01:00
Christian Muehlhaeuser
340f345efe
Fixed rune handling in IndentWriter
2019-12-02 15:39:12 +01:00
Christian Muehlhaeuser
8ecdd0e83c
Add error handling to IndentWriter
2019-12-02 15:24:07 +01:00
Christian Muehlhaeuser
d0b616b12b
Children in a Document or Paragraph element inherit their parent's color styles
2019-12-02 15:23:45 +01:00
Christian Muehlhaeuser
bbd7dfecce
Initialize paragraph buffer in ParagraphElement
2019-12-02 15:22:30 +01:00
Christian Muehlhaeuser
011c602e64
Render prefix/suffix in current style
2019-12-02 15:20:55 +01:00
Christian Muehlhaeuser
e43288b69c
Check for style being nil in renderText helper
2019-12-02 15:20:11 +01:00
Christian Muehlhaeuser
f27536eeb4
Add cascading style helpers
2019-12-02 15:19:25 +01:00
Christian Muehlhaeuser
d6d52829bb
Make document indentable
2019-11-30 08:07:40 +01:00
Christian Muehlhaeuser
fca5fd91d6
Fix background colors not being applied correctly
2019-11-30 07:04:48 +01:00
Christian Muehlhaeuser
87aaa94b41
Fix IndentWriter indenting after trailing line-breaks
2019-11-30 06:52:07 +01:00
Christian Muehlhaeuser
72e53c38d2
Add IdentWriter
2019-11-30 06:45:33 +01:00
Christian Muehlhaeuser
d37d023d5d
Support styled indents for block elements
2019-11-30 06:43:13 +01:00
Christian Muehlhaeuser
f70d879a63
Bump reflow dependency
2019-11-28 06:12:36 +01:00
Christian Muehlhaeuser
e768cd63bf
Use io.Writer directly instead of using Fprintf to print strings
2019-11-28 05:48:31 +01:00
Christian Muehlhaeuser
f1a62c8b72
Redundant code cleanup
2019-11-28 02:32:11 +01:00
Christian Muehlhaeuser
d4d0a3e313
Let users define their own element prefix/suffix in styles
2019-11-28 02:28:54 +01:00
Christian Muehlhaeuser
8ddf4be8b2
Add image_text style, which lets you change the look of an image's name/alt
2019-11-28 02:27:00 +01:00
Christian Muehlhaeuser
59b8ecde6d
Render each paragraph individually and reflow text only inside paragraphs
2019-11-28 02:23:29 +01:00
Christian Muehlhaeuser
a601b62b90
Move listitem styling to style JSON
2019-11-26 22:42:52 +01:00
Christian Muehlhaeuser
730f9bd2fb
Let users define a prefix & suffix for style elements
2019-11-26 22:39:39 +01:00
Christian Muehlhaeuser
425d236a44
Embed default dark style into binary
2019-11-26 21:05:37 +01:00
Christian Muehlhaeuser
8f086bc134
Drop redundant TableData struct
2019-11-26 04:37:30 +01:00
Christian Muehlhaeuser
8fd35dc929
Simplify & cleanup RenderNode
2019-11-26 04:28:35 +01:00
Christian Muehlhaeuser
9eee4b13c3
Table rendering ( #40 )
...
Renders markdown tables.
2019-11-26 04:21:22 +01:00
Christian Muehlhaeuser
f47f525238
Handle renderer errors
2019-11-26 03:58:33 +01:00
Christian Muehlhaeuser
8f083a1043
Clean up pre/post ambiguity
2019-11-26 03:55:43 +01:00
Christian Muehlhaeuser
c0d32b4fcb
Abort on rendering error
2019-11-26 03:33:02 +01:00
Christian Muehlhaeuser
24a6306e1a
Use a Renderer interface instead of rendering fragments
2019-11-26 03:24:56 +01:00
Christian Muehlhaeuser
d438c26548
Correctly render nested lists
2019-11-26 01:20:59 +01:00
Christian Muehlhaeuser
18e173b10d
Handle relative URLs in markdown, when a BaseURL is provided
2019-11-26 00:35:11 +01:00
Christian Muehlhaeuser
c2af06bed0
Fix word-wrapping in colored output
2019-11-25 10:04:55 +01:00
Christian Muehlhaeuser
4de0a10e9e
Disable syntax highlighting when output is no terminal
2019-11-25 07:58:13 +01:00
Christian Muehlhaeuser
ef9ee10b74
Unescape sanitized HTML
2019-11-25 07:28:58 +01:00
Christian Muehlhaeuser
66d599db99
HTML-sanitize all text elements
2019-11-25 07:16:22 +01:00
Christian Muehlhaeuser
fb7c07f593
Strip HTML tags and render plain-text content only
2019-11-25 06:45:55 +01:00
Christian Muehlhaeuser
4c529d72b9
Word-wrap text at 100 chars per default
...
The default can be overwritten by the user:
./gold -w 80
2019-11-25 06:44:10 +01:00
Christian Muehlhaeuser
937e525993
Let user pick a syntax color theme in Gold's style config
2019-11-25 06:02:50 +01:00
Christian Muehlhaeuser
e6a9122041
Enable code highlighting with chroma
2019-11-25 05:47:14 +01:00
Christian Muehlhaeuser
16c2b7a239
Move style handling to style.go
2019-11-25 05:19:47 +01:00
Christian Muehlhaeuser
cc6e73b598
Link to cmd/gold instead of main.go
2019-11-25 05:00:01 +01:00
Christian Muehlhaeuser
450c551f08
Use a plain-text renderer when not printing to Terminal
2019-11-25 04:32:24 +01:00
Christian Muehlhaeuser
6eb2d04812
Handle nested content inside links
2019-11-25 02:40:34 +01:00
Christian Muehlhaeuser
d082cb2124
Use ElementStyles to determine rendering style
...
Since BlackFriday's Nodes are limiting us a bit in rendering
flexibility, I've introduced Gold's own ElementStyles (a bit of
code repetition here, but alas).
Nodes can now be divided into multiple fragments, which means we
are able to display the link's URL and text in different styles.
Updated the dark theme to demo the newly gained flexibility.
2019-11-24 23:33:25 +01:00
Christian Muehlhaeuser
f119aef232
Fix new-line before first paragraph
2019-11-24 05:09:07 +01:00