Commit Graph

100 Commits

Author SHA1 Message Date
Emi Tatsuo 5a6208dedf
Fix dependant workspace members
continuous-integration/drone/pr Build encountered an error Details
2020-12-10 11:53:57 -05:00
Emi Tatsuo 3dadcc05ba
Merge remote-tracking branch 'upstream/main' into alt-text
continuous-integration/drone/pr Build is passing Details
2020-12-10 11:04:22 -05:00
Cadey Ratio d08994c0cb Merge pull request 'Add a doctest for `blank_line()`' (#16) from alch_emii/maj-prs:blank-line-doctest into main
continuous-integration/drone/push Build is failing Details
Reviewed-on: #16
2020-12-10 12:47:31 +00:00
Emi Tatsuo e44decab07
Merge remote-tracking branch 'upstream/main' into blank-line-doctest
continuous-integration/drone/pr Build is passing Details
2020-12-07 18:27:26 -05:00
Cadey Ratio cf73a3bb1e Merge pull request 'Add a `blank_line()` method to `Builder`' (#13) from alch_emii/maj-prs:blank-line into main
continuous-integration/drone/push Build is failing Details
Reviewed-on: #13
2020-12-06 01:14:19 +00:00
Cadey Ratio 87a96151b5 Merge pull request 'Add conversion traits to Builder' (#12) from alch_emii/maj-prs:to-string into main
continuous-integration/drone/push Build is failing Details
Reviewed-on: #12
2020-12-06 01:13:21 +00:00
Emii Tatsuo 9bc2ea1159
Fix bug with type inferring for the `preformatted()` method
continuous-integration/drone/pr Build encountered an error Details
2020-11-30 14:17:13 -05:00
Emii Tatsuo 4c86fbba1e
Add support for alt-text in preformatted blocks ⚠️
continuous-integration/drone/pr Build is failing Details
⚠️  Breaking Change ⚠️

This adds support for parsing and rendering alt-text in preformatted blocks.  This changes the public API both around the `Node` enum and the `preformatted()` method of the builder.  I cannot think of a way to avoid this that is not needlessly overcomplicated, except maybe merging the preformatted & body into a single newline delimited string but that's hella gross and i don't think anyone wants that.  Lemme know if you can think of a better way of doing this

Preformatted blocks without alt text can still be created by passing in an empty string.  Because alt text isn't separated by a space, this does not add any unnecessary padding.  I chose not to accept Option<String> here because an empty string serves the same function but encourages users to use alt-text in their documents, which is very important for increasing accessibility.
2020-11-30 14:05:12 -05:00
Emii Tatsuo a7fabdc909
Allow Builder as Into<Vec<Node>>
continuous-integration/drone/pr Build encountered an error Details
2020-11-30 01:40:23 -05:00
Emii Tatsuo adf82e9d9b
Add a doctest for the `blank_line()` method
continuous-integration/drone/pr Build is passing Details
This adds a simple doctest for `blank_line()` but will not be included in the original PR because it is contingent on the merge of a pending PR for adding the `to_string()` method.
2020-11-30 01:17:41 -05:00
Emii Tatsuo c69ec3b7df
Merge branch 'to-string' into blank-line 2020-11-30 01:16:37 -05:00
Emii Tatsuo ac88fb60ee
Add a `blank_line()` method to `Builder`
continuous-integration/drone/pr Build is failing Details
Many times users may want to seperate lines of text using a blank line.  Currently, this can be accomplished by either adding '\n' to the previous `text()` call, which requires that the user has the ability to access this, and can also look a little messy, or by calling `text()` with an empty string, which definately works, but having an explicit method might be a nice sugar for a lot of users, and barely adds any weight to the codebase.

This is definately a small thing, and almost closer to a personal preferance than anything, but I definately think it would make the library a tiny bit nicer to use, and there's barely any tradeoff.  It's still up to you though if you'd rather keep your codebase small.
2020-11-30 01:11:12 -05:00
Emii Tatsuo 2f3dd72d90
Add AsRef and AsMut<[Node]> to builder
continuous-integration/drone/pr Build encountered an error Details
2020-11-30 00:52:08 -05:00
Emii Tatsuo 34dca8d92d
Impl ToString for Builder, accept AsRef<[Node]> in `render()`
continuous-integration/drone/pr Build is failing Details
This adds a to_string method to the `Builder` allowing for the easy conversion of a Vec<Node> into a String, for any usecases where a library might not be directly writing to an io::Write, or may want to do String-y things with your document first.  Without this, users would have to write to a Vec<u8> and convert to a String, which is kinda unintuitive, takes a lot of steps, and doesn't produce very readable code.  This simplifies it to one method call.

* Implementation of the std::str::ToString method for Builder
* Accepting any AsRef<[Node]> in render (including accepting the old Vec<Node>, so not breaking)
* Addition of estimate_len() to Node, used to pre-allocate the correct size of the String buffer

* `estimate_len` has some quick doctests and examples.  I know most of the rest of the project uses test methods, but I hope this is alright given that the tests may add some more clarity to the purpose and function of the method.
* `to_string` has a single line of unsafe code.  As the associated comment explains, this is provably safe, and exists just to avoid having to choose between having a bunch of duplicate code or inefficiently performing a UTF-8 check on a whole bunch bytes that we already know are safe.  That said, I totally get it if you're just generally against unsafe code and will change it to be an alternative if you so wish
* ToString is implemented instead of Display.  This is to discourage users from directly using this in a println!() or write!() macro, which would not be a thing you would normally expect to do with this.  It also gives us the advantage of being able to pre-allocate a buffer size, meaning less expensive String resizing.
* I couldn't think of a clever way to get `render()` to work with both `io::Write`s or `fmt::Write`s without duplicating the code, but I'm dumb and might be missing something, so if there's a way to do that instead of doing my funky unsafe hack that's cool and I can do that instead.
2020-11-29 23:17:15 -05:00
Cadey Ratio c743056263 Remove kindlegen from shell.nix
continuous-integration/drone/push Build is passing Details
Closes #11
2020-11-01 22:47:28 +00:00
Cadey Ratio bebfa4d7b1 release gemtext 0.2.1 with clone fix from @boringcactus
continuous-integration/drone/push Build is passing Details
2020-10-06 17:43:42 -04:00
Cadey Ratio 725957bf8c Merge pull request 'make gemtext::Node `Clone`' (#10) from boringcactus/maj:make-gemtext-node-clone into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #10
2020-10-06 21:42:28 +00:00
Melody Horn c07d81077a make gemtext::Node `Clone`
continuous-integration/drone/pr Build is passing Details
2020-10-05 04:38:19 -06:00
Cadey Ratio d437ac6e8f version bump for gemtext
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2020-09-26 19:21:03 -04:00
Cadey Ratio f2a251e829 version bump
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2020-09-26 19:12:29 -04:00
Cadey Ratio e58a01d14d Merge pull request 'escape special prefixes in plaintext nodes' (#9) from boringcactus/maj:preserve-texthood-of-text-nodes into main
continuous-integration/drone/push Build is failing Details
Reviewed-on: #9
2020-09-26 23:09:23 +00:00
Melody Horn 3cd71ce302 escape special prefixes in plaintext nodes
continuous-integration/drone/pr Build is passing Details
2020-09-26 15:22:39 -06:00
Cadey Ratio 85a3cfda4a double oops
continuous-integration/drone/push Build is failing Details
2020-08-08 16:17:35 -04:00
Cadey Ratio 740ac00628 use gemtext crate :D 2020-08-08 16:14:07 -04:00
Cadey Ratio 6058af8b44 update gemtext metadata for publication
continuous-integration/drone/push Build is failing Details
2020-08-08 16:11:02 -04:00
Cadey Ratio bae0ccb136 refactor gemtext tools into its own crate
continuous-integration/drone/push Build is failing Details
2020-08-08 16:10:20 -04:00
Cadey Ratio 6b9070e200 majc: fix redirects
continuous-integration/drone/push Build is failing Details
2020-08-08 16:05:13 -04:00
Cadey Ratio 1429602370 oops
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2020-08-08 12:14:13 -04:00
Cadey Ratio f5d9e09e40 version 0.6.0
continuous-integration/drone/push Build is failing Details
2020-08-08 12:11:31 -04:00
Cadey Ratio a533ebbeaf fix CGI support 2020-08-08 12:08:03 -04:00
Cadey Ratio 1da65dcfeb add CGI support
continuous-integration/drone/push Build is passing Details
2020-08-08 11:23:44 -04:00
Cadey Ratio ccb142d8b3 Update 'VERSION'
continuous-integration/drone/push Build is passing Details
2020-08-06 19:08:57 +00:00
Cadey Ratio ddcb5afbc4 fix?
continuous-integration/drone/push Build was killed Details
2020-08-06 14:45:48 -04:00
Cadey Ratio 17a69980e0 tix tarot
continuous-integration/drone/push Build is passing Details
2020-08-05 16:16:41 -04:00
Cadey Ratio 9f19054993 add RPG character backstory generator
continuous-integration/drone/push Build is passing Details
2020-08-05 16:03:42 -04:00
Cadey Ratio f80bdd45e7 fix fix
continuous-integration/drone/push Build is passing Details
2020-08-02 03:16:29 +00:00
Cadey Ratio 0a3c6fb23f cleanup http rendering
continuous-integration/drone/push Build is passing Details
2020-08-02 03:13:01 +00:00
Cadey Ratio c6f15577bb fix 2020-08-02 02:45:36 +00:00
Cadey Ratio 00f8fdc9e1 shitpost: serve HTTP
continuous-integration/drone/push Build is passing Details
2020-08-01 22:42:44 -04:00
Cadey Ratio ff88b28688 oops
continuous-integration/drone/push Build is passing Details
2020-08-01 22:51:14 +00:00
Cadey Ratio ad7947c5fa serve cetacean.club
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2020-08-01 21:55:08 +00:00
Cadey Ratio 4b7374b39f adapt majsite to serve cetacean.club
continuous-integration/drone/push Build is passing Details
2020-08-01 16:47:34 -04:00
Cadey Ratio 0ffd86c9f6 more words
continuous-integration/drone/push Build is passing Details
2020-08-01 12:02:12 -04:00
Cadey Ratio 2c2fc3ee09 better stuff :D 2020-08-01 12:02:12 -04:00
Cadey Ratio 28ae14ffa7 input test and static file serving with majsite 2020-08-01 12:02:12 -04:00
Cadey Ratio d2af2c5f08 file serving 2020-08-01 12:02:12 -04:00
Cadey Ratio 91328c4188 fix gitignore 2020-08-01 12:02:12 -04:00
Cadey Ratio c6567cc99d karnycukta experiment 2020-08-01 12:02:12 -04:00
Cadey Ratio 3c9fb6eeb3 why is this not working
continuous-integration/drone/push Build is passing Details
2020-07-31 16:43:09 +00:00
Cadey Ratio 93a5dd445a majc: fix rendering of gemlog.blue
continuous-integration/drone/push Build is passing Details
2020-07-28 16:02:48 -04:00