Add documentation for cow the main function works
Signed-off-by: Thomas A. Christensen II <25492070+MillironX@users.noreply.github.com>
This commit is contained in:
parent
ea64f32b1d
commit
c12422278a
2 changed files with 60 additions and 5 deletions
|
@ -2,9 +2,13 @@
|
|||
CurrentModule = Cowsay
|
||||
```
|
||||
|
||||
# cowsay
|
||||
# Cowsay.jl
|
||||
|
||||
Documentation for [cowsay](https://github.com/MillironX/cowsay.jl).
|
||||
A Julia package that lets you use
|
||||
[cowsay](https://en.wikipedia.org/wiki/Cowsay) in your Julia programs!
|
||||
|
||||
```@index
|
||||
## Usage
|
||||
|
||||
```@docs
|
||||
Cowsay.cowsay
|
||||
```
|
||||
|
|
|
@ -16,9 +16,60 @@ include("cows/vader.cow.jl")
|
|||
include("cows/www.cow.jl")
|
||||
|
||||
"""
|
||||
cowsay(message::AbstractString)
|
||||
cowsay(message::AbstractString; kwargs...)
|
||||
|
||||
Prints a cow saying `message` as unwrapped text.
|
||||
Print an ASCII picture of a cow saying `message`
|
||||
|
||||
# Arguments
|
||||
- `message::AbstractString`: Tell the cow what to say
|
||||
|
||||
# Keywords
|
||||
- `cow=default`: Specify a particular function handle to print the ASCII art. See below for
|
||||
more details on what constitutes a valid function handle.
|
||||
- `eyes::AbstractString="oo"`: A two-character string to be drawn in for the eyes. Not all
|
||||
cowfiles support this, though.
|
||||
- `tongue::AbstractString=" "`: A two-character string to be drawn in for the tongue. Not
|
||||
all cowfiles support this.
|
||||
|
||||
---
|
||||
|
||||
# Making a cow function
|
||||
|
||||
The original cowsay used Perl scripts (called 'cowfiles') to allow for creating more ASCII
|
||||
cow art. Cowsay.jl uses Julia functions, instead. In order to be usable by `Cowsay.cowsay`,
|
||||
a cow function **must**
|
||||
|
||||
1. Take the correct arguments
|
||||
|
||||
The function must take three (3)
|
||||
[keyword arguments](https://docs.julialang.org/en/v1/manual/functions/#Keyword-Arguments)
|
||||
of the form
|
||||
|
||||
- `eyes::AbstractString="oo"`
|
||||
- `tongue::AbstractString=" "`
|
||||
- `thoughts::AbstractString="\\"`
|
||||
|
||||
When drawing the cow artwork, you may then use the variables `eyes` in place of the
|
||||
eyes, `tongue` in place of the tongue, and `thoughts` in place of the speech ballon
|
||||
trail. Use of these variables in constructing the cow is optional (but makes the use of
|
||||
your cow function far more fun), but all three arguments must be present in the
|
||||
signature, regardless.
|
||||
|
||||
2. Return a string
|
||||
|
||||
The cow artwork must be returned from the function as a string. This is distinctly
|
||||
different from how the original cowsay modified the `\$the_cow` variable.
|
||||
|
||||
## Helpful hints for making cow functions
|
||||
|
||||
1. Include one function per file, with the extension `.cow.jl`
|
||||
2. Do not indent within a `.cow.jl` file to better see the artwork
|
||||
3. Make use of string literals (`\"""`) and string interpolation (`\$`) to build the cow
|
||||
art
|
||||
4. Be sure to escape backslashes (`\\`) and dollar signs (`\$`) within your artwork
|
||||
5. Split the `eyes` variable to get individual left- and right-eye when creating large cow
|
||||
functions
|
||||
6. Have fun!
|
||||
"""
|
||||
function cowsay(message::AbstractString; cow=default, eyes="oo", tongue=" ")
|
||||
messagelines = split(message, "\n")
|
||||
|
|
Loading…
Reference in a new issue