Compare commits
10 Commits
01f85bd098
...
568712b241
Author | SHA1 | Date | |
---|---|---|---|
568712b241 | |||
a87ce02819 | |||
3a9d3ac9aa | |||
02944da696 | |||
47183d3cf9 | |||
822bcb36ed | |||
a95b1afea9 | |||
27a39c27f7 | |||
5518553221 | |||
862a6d584f |
512
fonts/chunky.flf
Normal file
512
fonts/chunky.flf
Normal file
@ -0,0 +1,512 @@
|
||||
flf2a$ 5 4 20 15 1
|
||||
Square by Chris Gill, 30-JUN-94 -- based on .sig of Jeb Hagan.
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@@
|
||||
__ @
|
||||
| |@
|
||||
|__|@
|
||||
|__|@
|
||||
@@
|
||||
____ @
|
||||
| | |@
|
||||
|_|_|@
|
||||
@
|
||||
@@
|
||||
_____ @
|
||||
_| | |_ @
|
||||
|_ _|@
|
||||
|_ _|@
|
||||
|__|__| @@
|
||||
__,-,__ @
|
||||
| ' '__|@
|
||||
|__ |@
|
||||
|_______|@
|
||||
|_| @@
|
||||
__ ___ @
|
||||
|__| |@
|
||||
| __|@
|
||||
|___|__|@
|
||||
@@
|
||||
__,-,__ @
|
||||
| ' '__|@
|
||||
| __|@
|
||||
|_______|@
|
||||
|_| @@
|
||||
__ @
|
||||
| |@
|
||||
|_|@
|
||||
@
|
||||
@@
|
||||
___ @
|
||||
,' _|@
|
||||
| | @
|
||||
| |_ @
|
||||
`.___|@@
|
||||
___ @
|
||||
|_ `.@
|
||||
| |@
|
||||
_| |@
|
||||
|___,'@@
|
||||
__ _ __ @
|
||||
| | | |@
|
||||
> < @
|
||||
|__|_|__|@
|
||||
@@
|
||||
__ @
|
||||
_| |_ @
|
||||
|_ _|@
|
||||
|__| @
|
||||
@@
|
||||
@
|
||||
@
|
||||
__ @
|
||||
| |@
|
||||
|_|@@
|
||||
@
|
||||
______ @
|
||||
|______|@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
__ @
|
||||
|__|@
|
||||
@@
|
||||
___@
|
||||
/ /@
|
||||
,' ,' @
|
||||
/__/ @
|
||||
@@
|
||||
______ @
|
||||
| |@
|
||||
| -- |@
|
||||
|______|@
|
||||
@@
|
||||
____ @
|
||||
|_ | @
|
||||
_| |_ @
|
||||
|______|@
|
||||
@@
|
||||
______ @
|
||||
|__ |@
|
||||
| __|@
|
||||
|______|@
|
||||
@@
|
||||
______ @
|
||||
|__ |@
|
||||
|__ |@
|
||||
|______|@
|
||||
@@
|
||||
_____ @
|
||||
| | | @
|
||||
|__ |@
|
||||
|__| @
|
||||
@@
|
||||
______ @
|
||||
| __|@
|
||||
|__ |@
|
||||
|______|@
|
||||
@@
|
||||
______ @
|
||||
| __|@
|
||||
| __ |@
|
||||
|______|@
|
||||
@@
|
||||
______ @
|
||||
| |@
|
||||
|_ |@
|
||||
|____|@
|
||||
@@
|
||||
______ @
|
||||
| __ |@
|
||||
| __ |@
|
||||
|______|@
|
||||
@@
|
||||
______ @
|
||||
| __ |@
|
||||
|__ |@
|
||||
|______|@
|
||||
@@
|
||||
__ @
|
||||
|__|@
|
||||
__ @
|
||||
|__|@
|
||||
@@
|
||||
__ @
|
||||
|__|@
|
||||
__ @
|
||||
| |@
|
||||
|_|@@
|
||||
__ @
|
||||
,' _|@
|
||||
/ / @
|
||||
\ \_ @
|
||||
`.__|@@
|
||||
@
|
||||
______ @
|
||||
|______|@
|
||||
|______|@
|
||||
@@
|
||||
__ @
|
||||
|_ `. @
|
||||
\ \@
|
||||
_/ /@
|
||||
|__,' @@
|
||||
_____ @
|
||||
|__ |@
|
||||
', ,-'@
|
||||
|--| @
|
||||
'--' @@
|
||||
_________ @
|
||||
| ___ |@
|
||||
| | _ |@
|
||||
| |______|@
|
||||
|_________|@@
|
||||
_______ @
|
||||
| _ |@
|
||||
| |@
|
||||
|___|___|@
|
||||
@@
|
||||
______ @
|
||||
| __ \@
|
||||
| __ <@
|
||||
|______/@
|
||||
@@
|
||||
______ @
|
||||
| |@
|
||||
| ---|@
|
||||
|______|@
|
||||
@@
|
||||
_____ @
|
||||
| \ @
|
||||
| -- |@
|
||||
|_____/ @
|
||||
@@
|
||||
_______ @
|
||||
| ___|@
|
||||
| ___|@
|
||||
|_______|@
|
||||
@@
|
||||
_______ @
|
||||
| ___|@
|
||||
| ___|@
|
||||
|___| @
|
||||
@@
|
||||
_______ @
|
||||
| __|@
|
||||
| | |@
|
||||
|_______|@
|
||||
@@
|
||||
_______ @
|
||||
| | |@
|
||||
| |@
|
||||
|___|___|@
|
||||
@@
|
||||
_______ @
|
||||
|_ _|@
|
||||
_| |_ @
|
||||
|_______|@
|
||||
@@
|
||||
_____ @
|
||||
_| |@
|
||||
| |@
|
||||
|_______|@
|
||||
@@
|
||||
__ __ @
|
||||
| |/ |@
|
||||
| < @
|
||||
|__|\__|@
|
||||
@@
|
||||
_____ @
|
||||
| |_ @
|
||||
| |@
|
||||
|_______|@
|
||||
@@
|
||||
_______ @
|
||||
| | |@
|
||||
| |@
|
||||
|__|_|__|@
|
||||
@@
|
||||
_______ @
|
||||
| | |@
|
||||
| |@
|
||||
|__|____|@
|
||||
@@
|
||||
_______ @
|
||||
| |@
|
||||
| - |@
|
||||
|_______|@
|
||||
@@
|
||||
______ @
|
||||
| __ \@
|
||||
| __/@
|
||||
|___| @
|
||||
@@
|
||||
_______ @
|
||||
| |@
|
||||
| - _|@
|
||||
|_______|@
|
||||
@@
|
||||
______ @
|
||||
| __ \@
|
||||
| <@
|
||||
|___|__|@
|
||||
@@
|
||||
_______ @
|
||||
| __|@
|
||||
|__ |@
|
||||
|_______|@
|
||||
@@
|
||||
_______ @
|
||||
|_ _|@
|
||||
| | @
|
||||
|___| @
|
||||
@@
|
||||
_______ @
|
||||
| | |@
|
||||
| | |@
|
||||
|_______|@
|
||||
@@
|
||||
___ ___ @
|
||||
| | |@
|
||||
| | |@
|
||||
\_____/ @
|
||||
@@
|
||||
________ @
|
||||
| | | |@
|
||||
| | | |@
|
||||
|________|@
|
||||
@@
|
||||
___ ___ @
|
||||
| | |@
|
||||
|- -|@
|
||||
|___|___|@
|
||||
@@
|
||||
___ ___ @
|
||||
| | |@
|
||||
\ / @
|
||||
|___| @
|
||||
@@
|
||||
_______ @
|
||||
|__ |@
|
||||
| __|@
|
||||
|_______|@
|
||||
@@
|
||||
____ @
|
||||
| _|@
|
||||
| | @
|
||||
| |_ @
|
||||
|____|@@
|
||||
___ @
|
||||
\ \ @
|
||||
`. `. @
|
||||
\__\@
|
||||
@@
|
||||
____ @
|
||||
|_ |@
|
||||
| |@
|
||||
_| |@
|
||||
|____|@@
|
||||
____ @
|
||||
| |@
|
||||
|_/\_|@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
@
|
||||
______ @
|
||||
|______|@@
|
||||
__ @
|
||||
| |@
|
||||
|_| @
|
||||
@
|
||||
@@
|
||||
@
|
||||
.---.-.@
|
||||
| _ |@
|
||||
|___._|@
|
||||
@@
|
||||
__ @
|
||||
| |--.@
|
||||
| _ |@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
.----.@
|
||||
| __|@
|
||||
|____|@
|
||||
@@
|
||||
__ @
|
||||
.--| |@
|
||||
| _ |@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
.-----.@
|
||||
| -__|@
|
||||
|_____|@
|
||||
@@
|
||||
___ @
|
||||
.' _|@
|
||||
| _|@
|
||||
|__| @
|
||||
@@
|
||||
@
|
||||
.-----.@
|
||||
| _ |@
|
||||
|___ |@
|
||||
|_____|@@
|
||||
__ @
|
||||
| |--.@
|
||||
| |@
|
||||
|__|__|@
|
||||
@@
|
||||
__ @
|
||||
|__|@
|
||||
| |@
|
||||
|__|@
|
||||
@@
|
||||
__ @
|
||||
|__|@
|
||||
| |@
|
||||
| |@
|
||||
|___|@@
|
||||
__ @
|
||||
| |--.@
|
||||
| < @
|
||||
|__|__|@
|
||||
@@
|
||||
__ @
|
||||
| |@
|
||||
| |@
|
||||
|__|@
|
||||
@@
|
||||
@
|
||||
.--------.@
|
||||
| |@
|
||||
|__|__|__|@
|
||||
@@
|
||||
@
|
||||
.-----.@
|
||||
| |@
|
||||
|__|__|@
|
||||
@@
|
||||
@
|
||||
.-----.@
|
||||
| _ |@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
.-----.@
|
||||
| _ |@
|
||||
| __|@
|
||||
|__| @@
|
||||
@
|
||||
.-----.@
|
||||
| _ |@
|
||||
|__ |@
|
||||
|__|@@
|
||||
@
|
||||
.----.@
|
||||
| _|@
|
||||
|__| @
|
||||
@@
|
||||
@
|
||||
.-----.@
|
||||
|__ --|@
|
||||
|_____|@
|
||||
@@
|
||||
__ @
|
||||
| |_ @
|
||||
| _|@
|
||||
|____|@
|
||||
@@
|
||||
@
|
||||
.--.--.@
|
||||
| | |@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
.--.--.@
|
||||
| | |@
|
||||
\___/ @
|
||||
@@
|
||||
@
|
||||
.--.--.--.@
|
||||
| | | |@
|
||||
|________|@
|
||||
@@
|
||||
@
|
||||
.--.--.@
|
||||
|_ _|@
|
||||
|__.__|@
|
||||
@@
|
||||
@
|
||||
.--.--.@
|
||||
| | |@
|
||||
|___ |@
|
||||
|_____|@@
|
||||
@
|
||||
.-----.@
|
||||
|-- __|@
|
||||
|_____|@
|
||||
@@
|
||||
___ @
|
||||
| _|@
|
||||
/ / @
|
||||
\ \_ @
|
||||
|___|@@
|
||||
__ @
|
||||
| |@
|
||||
| |@
|
||||
| |@
|
||||
|__|@@
|
||||
___ @
|
||||
|_ | @
|
||||
\ \@
|
||||
_/ /@
|
||||
|___| @@
|
||||
___ @
|
||||
| ' |@
|
||||
|_,_| @
|
||||
@
|
||||
@@
|
||||
.--.--.@
|
||||
|-----|@
|
||||
| - |@
|
||||
|__|__|@
|
||||
@@
|
||||
.--.--.@
|
||||
|-----|@
|
||||
| _ |@
|
||||
|_____|@
|
||||
@@
|
||||
.--.--.@
|
||||
|--|--|@
|
||||
| | |@
|
||||
|_____|@
|
||||
@@
|
||||
.--.--.@
|
||||
|---.-|@
|
||||
| _ |@
|
||||
|___._|@
|
||||
@@
|
||||
.--.--.@
|
||||
|-----|@
|
||||
| _ |@
|
||||
|_____|@
|
||||
@@
|
||||
.--.--.@
|
||||
|--|--|@
|
||||
| | |@
|
||||
|_____|@
|
||||
@@
|
||||
_______ @
|
||||
| __ \@
|
||||
| __ <@
|
||||
| |____/@
|
||||
|__| @@
|
569
fonts/drpepper.flf
Normal file
569
fonts/drpepper.flf
Normal file
@ -0,0 +1,569 @@
|
||||
flf2a$ 5 4 20 0 16
|
||||
Font : Dr. Pepper (after a name in one sig done in this style).
|
||||
Author: Eero Tamminen, t150315@cc.tut.fi.
|
||||
|
||||
Characters '#' and '&' are lousy and I'm not very satisfied
|
||||
with the '$' or 't'... Suggestions?
|
||||
|
||||
Explanation of first line:
|
||||
flf2 - "magic number" for file identifiction
|
||||
a - should always be `a', for now
|
||||
$ - the "hardblank" -- prints s a blank, but can't be smushed
|
||||
5 - height of a character
|
||||
4 - height of a character, not including descenders
|
||||
20 - max line length (excluding comment lines) + fudge factor
|
||||
0 - default smushmode for this font
|
||||
16 - number of comment lines
|
||||
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@@
|
||||
_ @
|
||||
| |@
|
||||
|_/@
|
||||
<_>@
|
||||
@@
|
||||
_ _@
|
||||
|/|/@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
$_|_|_$@
|
||||
$_|_|_$@
|
||||
| | @
|
||||
@@
|
||||
@
|
||||
||_@
|
||||
<_-<@
|
||||
/__/@
|
||||
|| @@
|
||||
__@
|
||||
<>/ /@
|
||||
/ / @
|
||||
/_/<>@
|
||||
@@
|
||||
_ @
|
||||
< > @
|
||||
/.\/$@
|
||||
\_/\$@
|
||||
@@
|
||||
_@
|
||||
|/@
|
||||
@
|
||||
@
|
||||
@@
|
||||
__@
|
||||
/ /@
|
||||
| | @
|
||||
| | @
|
||||
\_\@@
|
||||
__ @
|
||||
\ \ @
|
||||
| |@
|
||||
| |@
|
||||
/_/ @@
|
||||
@
|
||||
_/\_@
|
||||
> <@
|
||||
\/ @
|
||||
@@
|
||||
_ @
|
||||
_| |_ @
|
||||
|_ _|@
|
||||
|_| @
|
||||
@@
|
||||
@
|
||||
@
|
||||
_@
|
||||
|/@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
|___|@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
_ @
|
||||
<_>@
|
||||
@@
|
||||
__@
|
||||
/ /@
|
||||
/ / @
|
||||
/_/ @
|
||||
@@
|
||||
___ @
|
||||
| |@
|
||||
| / |@
|
||||
`___'@
|
||||
@@
|
||||
_ @
|
||||
/ |@
|
||||
| |@
|
||||
|_|@
|
||||
@@
|
||||
___ @
|
||||
<_ >@
|
||||
/ / @
|
||||
<___>@
|
||||
@@
|
||||
____@
|
||||
<__ /@
|
||||
<_ \@
|
||||
<___/@
|
||||
@@
|
||||
__ @
|
||||
/. | @
|
||||
/_ .|@
|
||||
|_| @
|
||||
@@
|
||||
___ @
|
||||
| __|@
|
||||
`__ \@
|
||||
|___/@
|
||||
@@
|
||||
___ @
|
||||
| __>@
|
||||
| . \@
|
||||
`___/@
|
||||
@@
|
||||
___ @
|
||||
|_ |@
|
||||
/ / @
|
||||
/_/ @
|
||||
@@
|
||||
___ @
|
||||
< . >@
|
||||
/ . \@
|
||||
\___/@
|
||||
@@
|
||||
___ @
|
||||
| . |@
|
||||
`_ /@
|
||||
/_/ @
|
||||
@@
|
||||
_ @
|
||||
<_>@
|
||||
_ @
|
||||
<_>@
|
||||
@@
|
||||
_ @
|
||||
<_>@
|
||||
_ @
|
||||
|/ @
|
||||
@@
|
||||
__@
|
||||
/ /@
|
||||
< < @
|
||||
\_\@
|
||||
@@
|
||||
___ @
|
||||
|___|@
|
||||
___ @
|
||||
|___|@
|
||||
@@
|
||||
__ @
|
||||
\ \ @
|
||||
> >@
|
||||
/_/ @
|
||||
@@
|
||||
___ @
|
||||
<_. >@
|
||||
/_/ @
|
||||
<_> @
|
||||
@@
|
||||
___ @
|
||||
| "|@
|
||||
| \_|@
|
||||
`___/@
|
||||
@@
|
||||
___ @
|
||||
| . |@
|
||||
| |@
|
||||
|_|_|@
|
||||
@@
|
||||
___ @
|
||||
| . >@
|
||||
| . \@
|
||||
|___/@
|
||||
@@
|
||||
___ @
|
||||
| _>@
|
||||
| <__@
|
||||
`___/@
|
||||
@@
|
||||
___ @
|
||||
| . \@
|
||||
| | |@
|
||||
|___/@
|
||||
@@
|
||||
___ @
|
||||
| __>@
|
||||
| _> @
|
||||
|___>@
|
||||
@@
|
||||
___ @
|
||||
| __>@
|
||||
| _> @
|
||||
|_| @
|
||||
@@
|
||||
___ @
|
||||
/ _> @
|
||||
| <_/\@
|
||||
`____/@
|
||||
@@
|
||||
_ _ @
|
||||
| | |@
|
||||
| |@
|
||||
|_|_|@
|
||||
@@
|
||||
_ @
|
||||
| |@
|
||||
| |@
|
||||
|_|@
|
||||
@@
|
||||
_ @
|
||||
| |@
|
||||
_| |@
|
||||
\__/@
|
||||
@@
|
||||
_ __@
|
||||
| / /@
|
||||
| \ @
|
||||
|_\_\@
|
||||
@@
|
||||
_ @
|
||||
| | @
|
||||
| |_ @
|
||||
|___|@
|
||||
@@
|
||||
__ __ @
|
||||
| \ \@
|
||||
| |@
|
||||
|_|_|_|@
|
||||
@@
|
||||
_ _ @
|
||||
| \ |@
|
||||
| |@
|
||||
|_\_|@
|
||||
@@
|
||||
___ @
|
||||
| . |@
|
||||
| | |@
|
||||
`___'@
|
||||
@@
|
||||
___ @
|
||||
| . \@
|
||||
| _/@
|
||||
|_| @
|
||||
@@
|
||||
___ @
|
||||
| . |@
|
||||
| | |@
|
||||
`___\@
|
||||
@@
|
||||
___ @
|
||||
| . \@
|
||||
| /@
|
||||
|_\_\@
|
||||
@@
|
||||
___ @
|
||||
/ __>@
|
||||
\__ \@
|
||||
<___/@
|
||||
@@
|
||||
___ @
|
||||
|_ _|@
|
||||
| | @
|
||||
|_| @
|
||||
@@
|
||||
_ _ @
|
||||
| | |@
|
||||
| ' |@
|
||||
`___'@
|
||||
@@
|
||||
_ _ @
|
||||
| | |@
|
||||
| ' |@
|
||||
|__/ @
|
||||
@@
|
||||
_ _ _ @
|
||||
| | | |@
|
||||
| | | |@
|
||||
|__/_/ @
|
||||
@@
|
||||
__ _$@
|
||||
\ \/ @
|
||||
\ \ @
|
||||
_/\_\ @
|
||||
@@
|
||||
_ _ @
|
||||
| | |@
|
||||
\ /@
|
||||
|_| @
|
||||
@@
|
||||
____@
|
||||
|_ /@
|
||||
/ / @
|
||||
/___|@
|
||||
@@
|
||||
___ @
|
||||
| _|@
|
||||
| | @
|
||||
| |_ @
|
||||
|___|@@
|
||||
__ @
|
||||
\ \ @
|
||||
\ \ @
|
||||
\_\@
|
||||
@@
|
||||
___ @
|
||||
|_ |@
|
||||
| |@
|
||||
_| |@
|
||||
|___|@@
|
||||
/\ @
|
||||
</\>@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
___ @
|
||||
|___|@
|
||||
@@
|
||||
_ @
|
||||
\|@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
<_> |@
|
||||
<___|@
|
||||
@@
|
||||
_ @
|
||||
| |_ @
|
||||
| . \@
|
||||
|___/@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
/ | '@
|
||||
\_|_.@
|
||||
@@
|
||||
_ @
|
||||
_| |@
|
||||
/ . |@
|
||||
\___|@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
/ ._>@
|
||||
\___.@
|
||||
@@
|
||||
___ @
|
||||
| | '@
|
||||
| |- @
|
||||
|_| @
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
/ . |@
|
||||
\_. |@
|
||||
<___'@@
|
||||
_ @
|
||||
| |_ @
|
||||
| . |@
|
||||
|_|_|@
|
||||
@@
|
||||
_ @
|
||||
<_>@
|
||||
| |@
|
||||
|_|@
|
||||
@@
|
||||
_ @
|
||||
<_>@
|
||||
| |@
|
||||
| |@
|
||||
<__'@@
|
||||
_ @
|
||||
| |__@
|
||||
| / /@
|
||||
|_\_\@
|
||||
@@
|
||||
_ @
|
||||
| |@
|
||||
| |@
|
||||
|_|@
|
||||
@@
|
||||
@
|
||||
._ _ _ @
|
||||
| ' ' |@
|
||||
|_|_|_|@
|
||||
@@
|
||||
@
|
||||
._ _ @
|
||||
| ' |@
|
||||
|_|_|@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
/ . \@
|
||||
\___/@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
| . \@
|
||||
| _/@
|
||||
|_| @@
|
||||
@
|
||||
___ @
|
||||
/ . |@
|
||||
\_ |@
|
||||
|_|@@
|
||||
@
|
||||
_ _ @
|
||||
| '_>@
|
||||
|_| @
|
||||
@@
|
||||
@
|
||||
___@
|
||||
<_-<@
|
||||
/__/@
|
||||
@@
|
||||
_ @
|
||||
$_| |_$@
|
||||
| | @
|
||||
|_| @
|
||||
@@
|
||||
@
|
||||
_ _ @
|
||||
| | |@
|
||||
`___|@
|
||||
@@
|
||||
@
|
||||
_ _ @
|
||||
| | |@
|
||||
|__/ @
|
||||
@@
|
||||
@
|
||||
_ _ _ @
|
||||
| | | |@
|
||||
|__/_/ @
|
||||
@@
|
||||
@
|
||||
__ @
|
||||
\ \/@
|
||||
/\_\@
|
||||
@@
|
||||
@
|
||||
_ _ @
|
||||
| | |@
|
||||
`_. |@
|
||||
<___'@@
|
||||
@
|
||||
.___@
|
||||
/ /@
|
||||
/___@
|
||||
@@
|
||||
__@
|
||||
/ /@
|
||||
/ | @
|
||||
\ | @
|
||||
\_\@@
|
||||
||@
|
||||
||@
|
||||
||@
|
||||
||@
|
||||
@@
|
||||
__ @
|
||||
\ \ @
|
||||
| \@
|
||||
| /@
|
||||
/_/ @@
|
||||
@
|
||||
/\/|@
|
||||
|/\/ @
|
||||
@
|
||||
@@
|
||||
<>_<>@
|
||||
| . |@
|
||||
| |@
|
||||
|_|_|@
|
||||
@@
|
||||
<>_<>@
|
||||
| . |@
|
||||
| | |@
|
||||
`___'@
|
||||
@@
|
||||
<>_<>@
|
||||
| | |@
|
||||
| ' |@
|
||||
`___'@
|
||||
@@
|
||||
@
|
||||
<>_<>@
|
||||
`_> |@
|
||||
<___|@
|
||||
@@
|
||||
@
|
||||
<>_<>@
|
||||
/ . \@
|
||||
\___/@
|
||||
@@
|
||||
@
|
||||
<>_<>@
|
||||
| | |@
|
||||
`___|@
|
||||
@@
|
||||
___ @
|
||||
| . >@
|
||||
| . \@
|
||||
| ._/@
|
||||
|_| @@
|
||||
196
|
||||
<>_<>@
|
||||
| . |@
|
||||
| |@
|
||||
|_|_|@
|
||||
@@
|
||||
214
|
||||
<>_<>@
|
||||
| . |@
|
||||
| | |@
|
||||
`___'@
|
||||
@@
|
||||
220
|
||||
<>_<>@
|
||||
| | |@
|
||||
| ' |@
|
||||
`___'@
|
||||
@@
|
||||
223
|
||||
___ @
|
||||
| . >@
|
||||
| . \@
|
||||
| ._/@
|
||||
|_| @@
|
||||
228
|
||||
@
|
||||
<>_<>@
|
||||
`_> |@
|
||||
<___|@
|
||||
@@
|
||||
246
|
||||
@
|
||||
<>_<>@
|
||||
/ . \@
|
||||
\___/@
|
||||
@@
|
||||
252
|
||||
@
|
||||
<>_<>@
|
||||
| | |@
|
||||
`___|@
|
||||
@@
|
617
fonts/graffiti.flf
Normal file
617
fonts/graffiti.flf
Normal file
@ -0,0 +1,617 @@
|
||||
flf2a$ 6 5 32 15 4
|
||||
Font name is graffiti.flf
|
||||
This figlet font designed by Leigh Purdie (purdie@zeus.usq.edu.au)
|
||||
'fig-fonted' by Leigh Purdie and Tim Maggio (tim@claremont.com)
|
||||
Date: 5 Mar 1994
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@
|
||||
$@@
|
||||
._.@
|
||||
| |@
|
||||
| |@
|
||||
\|@
|
||||
__@
|
||||
\/@@
|
||||
/\/\@
|
||||
)/)/@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
_ _ @
|
||||
__| || |__@
|
||||
\ __ /@
|
||||
| || | @
|
||||
/_ ~~ _\@
|
||||
|_||_| @@
|
||||
____/\__@
|
||||
/ / /_/@
|
||||
\__/ / \ @
|
||||
/ / / \@
|
||||
/_/ /__ /@
|
||||
\/ \/ @@
|
||||
_ /\ @
|
||||
/ \ / / @
|
||||
\_// /_ @
|
||||
/ // \@
|
||||
/ / \_/@
|
||||
\/ @@
|
||||
____ @
|
||||
/ _ \ @
|
||||
> _ </\@
|
||||
/ <_\ \/@
|
||||
\_____\ \@
|
||||
\/@@
|
||||
/\@
|
||||
)/@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
$ ___$@
|
||||
$ / /$@
|
||||
$ / / $@
|
||||
$( ( $@
|
||||
$ \ \ $@
|
||||
$ \__\$@@
|
||||
$___ $@
|
||||
$\ \ $@
|
||||
$ \ \ $@
|
||||
$ ) )$@
|
||||
$ / / $@
|
||||
$/__/ $@@
|
||||
$ $@
|
||||
$ /\|\/\ $@
|
||||
$_) (__$@
|
||||
$\_ _/$@
|
||||
$ ) \ $@
|
||||
$ \/\|\/ $@@
|
||||
$ $@
|
||||
$ .__ $@
|
||||
$ __| |___$@
|
||||
$/__ __/$@
|
||||
$ |__| $@
|
||||
$ $@@
|
||||
$ @
|
||||
$ @
|
||||
$ @
|
||||
$ @
|
||||
$/\@
|
||||
$)/@@
|
||||
$ $@
|
||||
$ $@
|
||||
$ ______$@
|
||||
$/_____/$@
|
||||
$ $@
|
||||
$ $@@
|
||||
$ @
|
||||
$ @
|
||||
$ @
|
||||
$ @
|
||||
$/\@
|
||||
$\/@@
|
||||
$ /\$@
|
||||
$ / /$@
|
||||
$ / / $@
|
||||
$ / / $@
|
||||
$/ / $@
|
||||
$\/ $@@
|
||||
_______ @
|
||||
\ _ \ @
|
||||
/ /_\ \ @
|
||||
\ \_/ \@
|
||||
\_____ /@
|
||||
\/ @@
|
||||
____ @
|
||||
/_ |@
|
||||
| |@
|
||||
| |@
|
||||
|___|@
|
||||
@@
|
||||
________ @
|
||||
\_____ \ @
|
||||
/ ____/ @
|
||||
/ \ @
|
||||
\_______ \@
|
||||
\/@@
|
||||
________ @
|
||||
\_____ \ @
|
||||
_(__ < @
|
||||
/ \@
|
||||
/______ /@
|
||||
\/ @@
|
||||
_____ @
|
||||
/ | | @
|
||||
/ | |_@
|
||||
/ ^ /@
|
||||
\____ | @
|
||||
|__| @@
|
||||
.________@
|
||||
| ____/@
|
||||
|____ \ @
|
||||
/ \@
|
||||
/______ /@
|
||||
\/ @@
|
||||
________@
|
||||
/ _____/@
|
||||
/ __ \ @
|
||||
\ |__\ \@
|
||||
\_____ /@
|
||||
\/ @@
|
||||
_________ @
|
||||
\______ \@
|
||||
/ /@
|
||||
/ / @
|
||||
/____/ @
|
||||
@@
|
||||
______ @
|
||||
/ __ \ @
|
||||
> < @
|
||||
/ -- \@
|
||||
\______ /@
|
||||
\/ @@
|
||||
________ @
|
||||
/ __ \@
|
||||
\____ /@
|
||||
/ / @
|
||||
/____/ @
|
||||
@@
|
||||
$ $@
|
||||
$/\$@
|
||||
$\/$@
|
||||
$/\$@
|
||||
$\/$@
|
||||
$ $@@
|
||||
$ $@
|
||||
$/\$@
|
||||
$\/$@
|
||||
$/\$@
|
||||
$)/$@
|
||||
$ $@@
|
||||
$ __$@
|
||||
$ / /$@
|
||||
$/ / $@
|
||||
$\ \ $@
|
||||
$ \_\$@
|
||||
$ $@@
|
||||
$ $@
|
||||
$ ______$@
|
||||
$/_____/$@
|
||||
$/_____/$@
|
||||
$ $@
|
||||
$ $@@
|
||||
$__ $@
|
||||
$\ \ $@
|
||||
$ \ \$@
|
||||
$ / /$@
|
||||
$/_/ $@
|
||||
$ $@@
|
||||
_________ @
|
||||
\_____ \@
|
||||
/ __/@
|
||||
| | @
|
||||
|___| @
|
||||
<___> @@
|
||||
_____ @
|
||||
/ ___ \ @
|
||||
/ / ._\ \@
|
||||
< \_____/@
|
||||
\_____\ @
|
||||
@@
|
||||
_____ @
|
||||
/ _ \ @
|
||||
/ /_\ \ @
|
||||
/ | \@
|
||||
\____|__ /@
|
||||
\/ @@
|
||||
__________ @
|
||||
\______ \@
|
||||
| | _/@
|
||||
| | \@
|
||||
|______ /@
|
||||
\/ @@
|
||||
_________ @
|
||||
\_ ___ \ @
|
||||
/ \ \/ @
|
||||
\ \____@
|
||||
\______ /@
|
||||
\/ @@
|
||||
________ @
|
||||
\______ \ @
|
||||
| | \ @
|
||||
| ` \@
|
||||
/_______ /@
|
||||
\/ @@
|
||||
___________@
|
||||
\_ _____/@
|
||||
| __)_ @
|
||||
| \@
|
||||
/_______ /@
|
||||
\/ @@
|
||||
___________@
|
||||
\_ _____/@
|
||||
| __) @
|
||||
| \ @
|
||||
\___ / @
|
||||
\/ @@
|
||||
________ @
|
||||
/ _____/ @
|
||||
/ \ ___ @
|
||||
\ \_\ \@
|
||||
\______ /@
|
||||
\/ @@
|
||||
___ ___ @
|
||||
/ | \ @
|
||||
/ ~ \@
|
||||
\ Y /@
|
||||
\___|_ / @
|
||||
\/ @@
|
||||
.___ @
|
||||
| |@
|
||||
| |@
|
||||
| |@
|
||||
|___|@
|
||||
@@
|
||||
____.@
|
||||
| |@
|
||||
| |@
|
||||
/\__| |@
|
||||
\________|@
|
||||
@@
|
||||
____ __.@
|
||||
| |/ _|@
|
||||
| < @
|
||||
| | \ @
|
||||
|____|__ \@
|
||||
\/@@
|
||||
.____ @
|
||||
| | @
|
||||
| | @
|
||||
| |___ @
|
||||
|_______ \@
|
||||
\/@@
|
||||
_____ @
|
||||
/ \ @
|
||||
/ \ / \ @
|
||||
/ Y \@
|
||||
\____|__ /@
|
||||
\/ @@
|
||||
_______ @
|
||||
\ \ @
|
||||
/ | \ @
|
||||
/ | \@
|
||||
\____|__ /@
|
||||
\/ @@
|
||||
________ @
|
||||
\_____ \ @
|
||||
/ | \ @
|
||||
/ | \@
|
||||
\_______ /@
|
||||
\/ @@
|
||||
__________ @
|
||||
\______ \@
|
||||
| ___/@
|
||||
| | @
|
||||
|____| @
|
||||
@@
|
||||
________ @
|
||||
\_____ \ @
|
||||
/ / \ \ @
|
||||
/ \_/. \@
|
||||
\_____\ \_/@
|
||||
\__>@@
|
||||
__________ @
|
||||
\______ \@
|
||||
| _/@
|
||||
| | \@
|
||||
|____|_ /@
|
||||
\/ @@
|
||||
_________@
|
||||
/ _____/@
|
||||
\_____ \ @
|
||||
/ \@
|
||||
/_______ /@
|
||||
\/ @@
|
||||
___________@
|
||||
\__ ___/@
|
||||
| | @
|
||||
| | @
|
||||
|____| @
|
||||
@@
|
||||
____ ___ @
|
||||
| | \@
|
||||
| | /@
|
||||
| | / @
|
||||
|______/ @
|
||||
@@
|
||||
____ ____@
|
||||
\ \ / /@
|
||||
\ Y / @
|
||||
\ / @
|
||||
\___/ @
|
||||
@@
|
||||
__ __ @
|
||||
/ \ / \@
|
||||
\ \/\/ /@
|
||||
\ / @
|
||||
\__/\ / @
|
||||
\/ @@
|
||||
____ ___@
|
||||
\ \/ /@
|
||||
\ / @
|
||||
/ \ @
|
||||
/___/\ \@
|
||||
\_/@@
|
||||
_____.___.@
|
||||
\__ | |@
|
||||
/ | |@
|
||||
\____ |@
|
||||
/ ______|@
|
||||
\/ @@
|
||||
__________@
|
||||
\____ /@
|
||||
/ / @
|
||||
/ /_ @
|
||||
/_______ \@
|
||||
\/@@
|
||||
$.____ $@
|
||||
$| _|$@
|
||||
$| | $@
|
||||
$| | $@
|
||||
$| |_ $@
|
||||
$|____|$@@
|
||||
/\ @
|
||||
\ \ @
|
||||
\ \ @
|
||||
\ \ @
|
||||
\ \@
|
||||
\/@@
|
||||
$ ____.$@
|
||||
$|_ |$@
|
||||
$ | |$@
|
||||
$ | |$@
|
||||
$ _| |$@
|
||||
$|____|$@@
|
||||
$ /\ $@
|
||||
$/ \$@
|
||||
$\/\/$@
|
||||
$ $@
|
||||
$ $@
|
||||
$ $@@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
______@
|
||||
/_____/@@
|
||||
/\@
|
||||
\(@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
\__ \ @
|
||||
/ __ \_@
|
||||
(____ /@
|
||||
\/ @@
|
||||
___. @
|
||||
\_ |__ @
|
||||
| __ \ @
|
||||
| \_\ \@
|
||||
|___ /@
|
||||
\/ @@
|
||||
@
|
||||
____ @
|
||||
_/ ___\ @
|
||||
\ \___ @
|
||||
\___ >@
|
||||
\/ @@
|
||||
.___@
|
||||
__| _/@
|
||||
/ __ | @
|
||||
/ /_/ | @
|
||||
\____ | @
|
||||
\/ @@
|
||||
@
|
||||
____ @
|
||||
_/ __ \ @
|
||||
\ ___/ @
|
||||
\___ >@
|
||||
\/ @@
|
||||
_____ @
|
||||
_/ ____\@
|
||||
\ __\ @
|
||||
| | @
|
||||
|__| @
|
||||
@@
|
||||
@
|
||||
____ @
|
||||
/ ___\ @
|
||||
/ /_/ >@
|
||||
\___ / @
|
||||
/_____/ @@
|
||||
.__ @
|
||||
| |__ @
|
||||
| | \ @
|
||||
| Y \@
|
||||
|___| /@
|
||||
\/ @@
|
||||
.__ @
|
||||
|__|@
|
||||
| |@
|
||||
| |@
|
||||
|__|@
|
||||
@@
|
||||
__ @
|
||||
|__|@
|
||||
| |@
|
||||
| |@
|
||||
/\__| |@
|
||||
\______|@@
|
||||
__ @
|
||||
| | __@
|
||||
| |/ /@
|
||||
| < @
|
||||
|__|_ \@
|
||||
\/@@
|
||||
.__ @
|
||||
| | @
|
||||
| | @
|
||||
| |__@
|
||||
|____/@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
/ \ @
|
||||
| Y Y \@
|
||||
|__|_| /@
|
||||
\/ @@
|
||||
@
|
||||
____ @
|
||||
/ \ @
|
||||
| | \@
|
||||
|___| /@
|
||||
\/ @@
|
||||
@
|
||||
____ @
|
||||
/ _ \ @
|
||||
( <_> )@
|
||||
\____/ @
|
||||
@@
|
||||
@
|
||||
______ @
|
||||
\____ \ @
|
||||
| |_> >@
|
||||
| __/ @
|
||||
|__| @@
|
||||
@
|
||||
______@
|
||||
/ ____/@
|
||||
< <_| |@
|
||||
\__ |@
|
||||
|__|@@
|
||||
@
|
||||
_______ @
|
||||
\_ __ \@
|
||||
| | \/@
|
||||
|__| @
|
||||
@@
|
||||
@
|
||||
______@
|
||||
/ ___/@
|
||||
\___ \ @
|
||||
/____ >@
|
||||
\/ @@
|
||||
__ @
|
||||
_/ |_ @
|
||||
\ __\@
|
||||
| | @
|
||||
|__| @
|
||||
@@
|
||||
@
|
||||
__ __ @
|
||||
| | \@
|
||||
| | /@
|
||||
|____/ @
|
||||
@@
|
||||
@
|
||||
___ __@
|
||||
\ \/ /@
|
||||
\ / @
|
||||
\_/ @
|
||||
@@
|
||||
@
|
||||
__ _ __@
|
||||
\ \/ \/ /@
|
||||
\ / @
|
||||
\/\_/ @
|
||||
@@
|
||||
@
|
||||
___ ___@
|
||||
\ \/ /@
|
||||
> < @
|
||||
/__/\_ \@
|
||||
\/@@
|
||||
@
|
||||
___.__.@
|
||||
< | |@
|
||||
\___ |@
|
||||
/ ____|@
|
||||
\/ @@
|
||||
@
|
||||
________@
|
||||
\___ /@
|
||||
/ / @
|
||||
/_____ \@
|
||||
\/@@
|
||||
$ ___$@
|
||||
$/ / $@
|
||||
$\ \ $@
|
||||
$< < $@
|
||||
$/ / $@
|
||||
$\_\_$@@
|
||||
$._.$@
|
||||
$| |$@
|
||||
$|_|$@
|
||||
$|-|$@
|
||||
$| |$@
|
||||
$|_|$@@
|
||||
$___ $@
|
||||
$ \ \$@
|
||||
$ / /$@
|
||||
$ > >$@
|
||||
$ \ \$@
|
||||
$_/_/$@@
|
||||
$ ___ $@
|
||||
$/ _ \_/\$@
|
||||
$\/ \___/$@
|
||||
$ $@
|
||||
$ $@
|
||||
$ $@@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@
|
||||
@@
|
614
fonts/rectangles.flf
Normal file
614
fonts/rectangles.flf
Normal file
@ -0,0 +1,614 @@
|
||||
flf2a$ 6 5 15 1 1
|
||||
rectangles.flf by David Villegas <mnementh@netcom.com> 12/94
|
||||
$$@
|
||||
$$@
|
||||
$$@
|
||||
$$@
|
||||
$$@
|
||||
$$@@
|
||||
__ @
|
||||
| |@
|
||||
| |@
|
||||
|__|@
|
||||
|__|@
|
||||
@@
|
||||
_ _ @
|
||||
| | |@
|
||||
|_|_|@
|
||||
$$$ @
|
||||
$$$ @
|
||||
$$$ @@
|
||||
_ _ @
|
||||
_| | |_ @
|
||||
|_ _|@
|
||||
|_ _|@
|
||||
|_|_| @
|
||||
@@
|
||||
_ @
|
||||
_| |_ @
|
||||
| __|@
|
||||
|__ |@
|
||||
|_ _|@
|
||||
|_| @@
|
||||
@
|
||||
__ __ @
|
||||
|__| |@
|
||||
| __|@
|
||||
|__|__|@
|
||||
@@
|
||||
_ @
|
||||
_| |_ @
|
||||
| __|@
|
||||
| __|@
|
||||
|_ _|@
|
||||
|_| @@
|
||||
_ @
|
||||
| |@
|
||||
|_|@
|
||||
$ @
|
||||
$ @
|
||||
$ @@
|
||||
_ @
|
||||
_|_|@
|
||||
| | @
|
||||
| | @
|
||||
|_|_ @
|
||||
|_|@@
|
||||
_ @
|
||||
|_|_ @
|
||||
| |@
|
||||
| |@
|
||||
_|_|@
|
||||
|_| @@
|
||||
@
|
||||
_____ @
|
||||
| | | |@
|
||||
|- -|@
|
||||
|_|_|_|@
|
||||
@@
|
||||
@
|
||||
_ @
|
||||
_| |_ @
|
||||
|_ _|@
|
||||
|_| @
|
||||
@@
|
||||
$ @
|
||||
$ @
|
||||
$ @
|
||||
_ @
|
||||
| |@
|
||||
|_|@@
|
||||
$$$ @
|
||||
$$$ @
|
||||
___ @
|
||||
|___|@
|
||||
$$$ @
|
||||
$$$ @@
|
||||
$ @
|
||||
$ @
|
||||
$ @
|
||||
_ @
|
||||
|_|@
|
||||
$ @@
|
||||
@
|
||||
_ @
|
||||
/ |@
|
||||
/ / @
|
||||
|_/ @
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
| |@
|
||||
| | |@
|
||||
|___|@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
|_ | @
|
||||
_| |_ @
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
|_ |@
|
||||
| _|@
|
||||
|___|@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
|_ |@
|
||||
|_ |@
|
||||
|___|@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
| | |@
|
||||
|_ |@
|
||||
|_|@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
| _|@
|
||||
|_ |@
|
||||
|___|@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
| _|@
|
||||
| . |@
|
||||
|___|@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
|_ |@
|
||||
| |@
|
||||
|_|@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
| . |@
|
||||
| . |@
|
||||
|___|@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
| . |@
|
||||
|_ |@
|
||||
|___|@
|
||||
@@
|
||||
@
|
||||
_ @
|
||||
|_|@
|
||||
_ @
|
||||
|_|@
|
||||
@@
|
||||
@
|
||||
_ @
|
||||
|_|@
|
||||
_ @
|
||||
| |@
|
||||
|_|@@
|
||||
__@
|
||||
/ /@
|
||||
/ / @
|
||||
< < @
|
||||
\ \ @
|
||||
\_\@@
|
||||
$$$$$ @
|
||||
$$$$$ @
|
||||
_____ @
|
||||
|_____|@
|
||||
|_____|@
|
||||
$$$$$ @@
|
||||
__ @
|
||||
\ \ @
|
||||
\ \ @
|
||||
> >@
|
||||
/ / @
|
||||
/_/ @@
|
||||
_____ @
|
||||
|___ |@
|
||||
| _|@
|
||||
|_| @
|
||||
|_| @
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| __ |@
|
||||
| |___|@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| _ |@
|
||||
| |@
|
||||
|__|__|@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| __ |@
|
||||
| __ -|@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| |@
|
||||
| --|@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
____ @
|
||||
| \ @
|
||||
| | |@
|
||||
|____/ @
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| __|@
|
||||
| __|@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| __|@
|
||||
| __|@
|
||||
|__| @
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| __|@
|
||||
| | |@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| | |@
|
||||
| |@
|
||||
|__|__|@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| |@
|
||||
|- -|@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
__ @
|
||||
__| |@
|
||||
| | |@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| | |@
|
||||
| -|@
|
||||
|__|__|@
|
||||
@@
|
||||
@
|
||||
__ @
|
||||
| | @
|
||||
| |__ @
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| |@
|
||||
| | | |@
|
||||
|_|_|_|@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| | |@
|
||||
| | | |@
|
||||
|_|___|@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| |@
|
||||
| | |@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| _ |@
|
||||
| __|@
|
||||
|__| @
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| |@
|
||||
| | |@
|
||||
|__ _|@
|
||||
|__|@@
|
||||
@
|
||||
_____ @
|
||||
| __ |@
|
||||
| -|@
|
||||
|__|__|@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| __|@
|
||||
|__ |@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
|_ _|@
|
||||
| | @
|
||||
|_| @
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| | |@
|
||||
| | |@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| | |@
|
||||
| | |@
|
||||
\___/ @
|
||||
@@
|
||||
@
|
||||
_ _ _ @
|
||||
| | | |@
|
||||
| | | |@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
__ __ @
|
||||
| | |@
|
||||
|- -|@
|
||||
|__|__|@
|
||||
@@
|
||||
@
|
||||
__ __ @
|
||||
| | |@
|
||||
|_ _|@
|
||||
|_| @
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
|__ |@
|
||||
| __|@
|
||||
|_____|@
|
||||
@@
|
||||
___ @
|
||||
| _|@
|
||||
| | @
|
||||
| | @
|
||||
| |_ @
|
||||
|___|@@
|
||||
@
|
||||
_ @
|
||||
| \ @
|
||||
\ \ @
|
||||
\_|@
|
||||
@@
|
||||
___ @
|
||||
|_ |@
|
||||
| |@
|
||||
| |@
|
||||
_| |@
|
||||
|___|@@
|
||||
_____ @
|
||||
| _ |@
|
||||
|_| |_|@
|
||||
$$$$$ @
|
||||
$$$$$ @
|
||||
$$$$$ @@
|
||||
$$$$$ @
|
||||
$$$$$ @
|
||||
$$$$$ @
|
||||
$$$$$ @
|
||||
_____ @
|
||||
|_____|@@
|
||||
___ @
|
||||
|_ |@
|
||||
|_|@
|
||||
$$$ @
|
||||
$$$ @
|
||||
$$$ @@
|
||||
@
|
||||
@
|
||||
___ @
|
||||
| .'|@
|
||||
|__,|@
|
||||
@@
|
||||
@
|
||||
_ @
|
||||
| |_ @
|
||||
| . |@
|
||||
|___|@
|
||||
@@
|
||||
@
|
||||
@
|
||||
___ @
|
||||
| _|@
|
||||
|___|@
|
||||
@@
|
||||
@
|
||||
_ @
|
||||
_| |@
|
||||
| . |@
|
||||
|___|@
|
||||
@@
|
||||
@
|
||||
@
|
||||
___ @
|
||||
| -_|@
|
||||
|___|@
|
||||
@@
|
||||
@
|
||||
___ @
|
||||
| _|@
|
||||
| _|@
|
||||
|_| @
|
||||
@@
|
||||
@
|
||||
@
|
||||
___ @
|
||||
| . |@
|
||||
|_ |@
|
||||
|___|@@
|
||||
@
|
||||
_ @
|
||||
| |_ @
|
||||
| |@
|
||||
|_|_|@
|
||||
@@
|
||||
@
|
||||
_ @
|
||||
|_|@
|
||||
| |@
|
||||
|_|@
|
||||
@@
|
||||
@
|
||||
_ @
|
||||
|_|@
|
||||
| |@
|
||||
_| |@
|
||||
|___|@@
|
||||
@
|
||||
_ @
|
||||
| |_ @
|
||||
| '_|@
|
||||
|_,_|@
|
||||
@@
|
||||
@
|
||||
_ @
|
||||
| |@
|
||||
| |@
|
||||
|_|@
|
||||
@@
|
||||
@
|
||||
@
|
||||
_____ @
|
||||
| |@
|
||||
|_|_|_|@
|
||||
@@
|
||||
@
|
||||
@
|
||||
___ @
|
||||
| |@
|
||||
|_|_|@
|
||||
@@
|
||||
@
|
||||
@
|
||||
___ @
|
||||
| . |@
|
||||
|___|@
|
||||
@@
|
||||
@
|
||||
@
|
||||
___ @
|
||||
| . |@
|
||||
| _|@
|
||||
|_| @@
|
||||
@
|
||||
@
|
||||
___ @
|
||||
| . |@
|
||||
|_ |@
|
||||
|_|@@
|
||||
@
|
||||
@
|
||||
___ @
|
||||
| _|@
|
||||
|_| @
|
||||
@@
|
||||
@
|
||||
@
|
||||
___ @
|
||||
|_ -|@
|
||||
|___|@
|
||||
@@
|
||||
@
|
||||
_ @
|
||||
| |_ @
|
||||
| _|@
|
||||
|_| @
|
||||
@@
|
||||
@
|
||||
@
|
||||
_ _ @
|
||||
| | |@
|
||||
|___|@
|
||||
@@
|
||||
@
|
||||
@
|
||||
_ _ @
|
||||
| | |@
|
||||
\_/ @
|
||||
@@
|
||||
@
|
||||
@
|
||||
_ _ _ @
|
||||
| | | |@
|
||||
|_____|@
|
||||
@@
|
||||
@
|
||||
@
|
||||
_ _ @
|
||||
|_'_|@
|
||||
|_,_|@
|
||||
@@
|
||||
@
|
||||
@
|
||||
_ _ @
|
||||
| | |@
|
||||
|_ |@
|
||||
|___|@@
|
||||
@
|
||||
@
|
||||
___ @
|
||||
|- _|@
|
||||
|___|@
|
||||
@@
|
||||
___ @
|
||||
| _|@
|
||||
_| | @
|
||||
|_ | @
|
||||
| |_ @
|
||||
|___|@@
|
||||
_ @
|
||||
| |@
|
||||
| |@
|
||||
| |@
|
||||
| |@
|
||||
|_|@@
|
||||
___ @
|
||||
|_ | @
|
||||
| |_ @
|
||||
| _|@
|
||||
_| | @
|
||||
|___| @@
|
||||
_____ @
|
||||
| | |@
|
||||
|_|___|@
|
||||
$$$$$ @
|
||||
$$$$$ @
|
||||
$$$$$ @@
|
||||
__ __ @
|
||||
|__|__|@
|
||||
| _ |@
|
||||
| |@
|
||||
|__|__|@
|
||||
@@
|
||||
__ __ @
|
||||
|__|__|@
|
||||
| |@
|
||||
| | |@
|
||||
|_____|@
|
||||
@@
|
||||
__ __ @
|
||||
|__|__|@
|
||||
| | |@
|
||||
| | |@
|
||||
|_____|@
|
||||
@@
|
||||
_ _ @
|
||||
|_|_|@
|
||||
___ @
|
||||
| .'|@
|
||||
|__,|@
|
||||
@@
|
||||
_ _ @
|
||||
|_|_|@
|
||||
___ @
|
||||
| . |@
|
||||
|___|@
|
||||
@@
|
||||
_ _ @
|
||||
|_|_|@
|
||||
_ _ @
|
||||
| | |@
|
||||
|___|@
|
||||
@@
|
||||
@
|
||||
_____ @
|
||||
| __ |@
|
||||
| __ -|@
|
||||
| ___|@
|
||||
|_| @@
|
1295
fonts/slant.flf
Normal file
1295
fonts/slant.flf
Normal file
File diff suppressed because it is too large
Load Diff
2227
fonts/standard.flf
Normal file
2227
fonts/standard.flf
Normal file
File diff suppressed because it is too large
Load Diff
1
go.mod
1
go.mod
@ -17,6 +17,7 @@ require (
|
||||
github.com/lib/pq v1.10.9
|
||||
github.com/lightninglabs/lndclient v0.16.0-11
|
||||
github.com/lightningnetwork/lnd v0.16.0-beta
|
||||
github.com/lukesampson/figlet v0.0.0-20190211215653-8a3ef4a6ac42
|
||||
github.com/namsral/flag v1.7.4-pre
|
||||
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
|
||||
github.com/stretchr/testify v1.8.4
|
||||
|
2
go.sum
2
go.sum
@ -438,6 +438,8 @@ github.com/lightningnetwork/lnd/tor v1.1.0/go.mod h1:RDtaAdwfAm+ONuPYwUhNIH1RAvK
|
||||
github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796 h1:sjOGyegMIhvgfq5oaue6Td+hxZuf3tDC8lAPrFldqFw=
|
||||
github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796/go.mod h1:3p7ZTf9V1sNPI5H8P3NkTFF4LuwMdPl2DodF60qAKqY=
|
||||
github.com/ltcsuite/ltcutil v0.0.0-20181217130922-17f3b04680b6/go.mod h1:8Vg/LTOO0KYa/vlHWJ6XZAevPQThGH5sufO0Hrou/lA=
|
||||
github.com/lukesampson/figlet v0.0.0-20190211215653-8a3ef4a6ac42 h1:UtyD+eBVdLYSj5/pjfSR6mtnzMgIiOVcFT024G2l4CY=
|
||||
github.com/lukesampson/figlet v0.0.0-20190211215653-8a3ef4a6ac42/go.mod h1:/peI0OaxVYh7fzA72CD7rUsyGVdF7sCiFw7GcYqOcCw=
|
||||
github.com/lunixbochs/vtclean v0.0.0-20160125035106-4fbf7632a2c6/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI=
|
||||
github.com/mattn/go-colorable v0.0.6/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
|
||||
|
37
lib/figlet.go
Normal file
37
lib/figlet.go
Normal file
@ -0,0 +1,37 @@
|
||||
package lib
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/lukesampson/figlet/figletlib"
|
||||
"golang.org/x/exp/rand"
|
||||
)
|
||||
|
||||
func Figlet(fontName string, text string) string {
|
||||
var (
|
||||
fontsDir = "fonts"
|
||||
// download figlet fonts from http://www.figlet.org/
|
||||
font *figletlib.Font
|
||||
err error
|
||||
)
|
||||
|
||||
if fontName == "random" {
|
||||
if files, err := os.ReadDir(fontsDir); err != nil {
|
||||
log.Printf("error reading directory %s: %v\n", fontsDir, err)
|
||||
return ""
|
||||
} else {
|
||||
fontName = files[rand.Intn(len(files))].Name()
|
||||
}
|
||||
}
|
||||
|
||||
if font, err = figletlib.GetFontByName(fontsDir, fontName); err != nil {
|
||||
log.Printf("could not find font %s: %v\n", fontName, err)
|
||||
return ""
|
||||
}
|
||||
|
||||
b := new(strings.Builder)
|
||||
figletlib.FPrintMsg(b, text, font, 80, font.Settings(), "left")
|
||||
return b.String()
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>delphi.market</title>
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
|
||||
<link rel="manifest" href="/site.webmanifest" />
|
||||
<link rel="stylesheet" href="/css/index.css" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#091833" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header class="flex flex-row text-center justify-center pt-1">
|
||||
<nav>
|
||||
<a href="/">home</a>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container flex flex-column text-center">
|
||||
<code>
|
||||
<strong>
|
||||
<pre>
|
||||
_ _ ___ ___
|
||||
| || | / _ \ / _ \
|
||||
| || |_| | | | | | |
|
||||
|__ _| |_| | |_| |
|
||||
|_| \___/ \___/ </pre>
|
||||
</strong>
|
||||
</code>
|
||||
<div class="font-mono mb-1">Bad Request</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -1,37 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>delphi.market</title>
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
|
||||
<link rel="manifest" href="/site.webmanifest" />
|
||||
<link rel="stylesheet" href="/css/index.css" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#091833" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header class="flex flex-row text-center justify-center pt-1">
|
||||
<nav>
|
||||
<a href="/">home</a>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container flex flex-column text-center">
|
||||
<code>
|
||||
<strong>
|
||||
<pre>
|
||||
_ _ ___ _ _
|
||||
| || | / _ \| || |
|
||||
| || |_| | | | || |_
|
||||
|__ _| |_| |__ _|
|
||||
|_| \___/ |_| </pre>
|
||||
</strong>
|
||||
</code>
|
||||
<div class="font-mono mb-1">Not Found</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -1,37 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>delphi.market</title>
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
|
||||
<link rel="manifest" href="/site.webmanifest" />
|
||||
<link rel="stylesheet" href="/css/index.css" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#091833" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header class="flex flex-row text-center justify-center pt-1">
|
||||
<nav>
|
||||
<a href="/">home</a>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container flex flex-column text-center">
|
||||
<code>
|
||||
<strong>
|
||||
<pre>
|
||||
_ _ ___ ____
|
||||
| || | / _ \| ___|
|
||||
| || |_| | | |___ \
|
||||
|__ _| |_| |___) |
|
||||
|_| \___/|____/ </pre>
|
||||
</strong>
|
||||
</code>
|
||||
<div class="font-mono mb-1">Method Not Allowed</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -1,37 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>delphi.market</title>
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
|
||||
<link rel="manifest" href="/site.webmanifest" />
|
||||
<link rel="stylesheet" href="/css/index.css" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#091833" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header class="flex flex-row text-center justify-center pt-1">
|
||||
<nav>
|
||||
<a href="/">home</a>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container flex flex-column text-center">
|
||||
<code>
|
||||
<strong>
|
||||
<pre>
|
||||
____ ___ ___
|
||||
| ___| / _ \ / _ \
|
||||
|___ \| | | | | | |
|
||||
___) | |_| | |_| |
|
||||
|____/ \___/ \___/ </pre>
|
||||
</strong>
|
||||
</code>
|
||||
<div class="font-mono mb-1">Internal Server Error</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -6,6 +6,10 @@
|
||||
--background-color: #191d21;
|
||||
--color: #d3d3d3;
|
||||
--muted-color: #6c757d;
|
||||
--lightning-color: #fada5e;
|
||||
--nostr-color: #8d45dd;
|
||||
--black: #000;
|
||||
--white: #fff;
|
||||
}
|
||||
|
||||
@layer base {
|
||||
@ -35,7 +39,48 @@
|
||||
color: var(--background-color);
|
||||
}
|
||||
|
||||
nav>a {
|
||||
nav a {
|
||||
padding: 0 0.25em;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 24px
|
||||
}
|
||||
|
||||
iframe {
|
||||
width: 300px;
|
||||
aspect-ratio: 560/315;
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
color: var(--muted-color);
|
||||
}
|
||||
|
||||
.figlet {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 144px;
|
||||
@apply my-3
|
||||
}
|
||||
|
||||
.login {
|
||||
background-color: var(--lightning-color);
|
||||
color: var(--black);
|
||||
width: fit-content;
|
||||
margin: 0 auto;
|
||||
padding: 0.25em 1em;
|
||||
border-radius: 5px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.lightning {
|
||||
background-color: var(--lightning-color);
|
||||
color: var(--black);
|
||||
}
|
||||
|
||||
.nostr {
|
||||
background-color: var(--nostr-color);
|
||||
color: var(--white);
|
||||
}
|
||||
}
|
@ -1,173 +0,0 @@
|
||||
body {
|
||||
background-color: #091833;
|
||||
color: #ffffff;
|
||||
caret-color: transparent;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
nav {
|
||||
display: flex;
|
||||
}
|
||||
a {
|
||||
color: #8787a4;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:hover {
|
||||
background: #8787A4;
|
||||
color: #ffffff;
|
||||
}
|
||||
a.selected {
|
||||
background: #8787A4;
|
||||
color: #ffffff;
|
||||
}
|
||||
nav > a {
|
||||
margin: 0 3px;
|
||||
}
|
||||
nav > form > button {
|
||||
color: #8787a4;
|
||||
text-decoration: underline;
|
||||
border: none;
|
||||
outline: none;
|
||||
background: none;
|
||||
cursor: pointer;
|
||||
padding: 0;
|
||||
text-decoration: underline;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
margin: 0 3px;
|
||||
}
|
||||
nav > form > button:hover {
|
||||
background: #8787A4;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
#qr > a > img {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1024px) {
|
||||
#qr > a > img {
|
||||
width: 30%;
|
||||
}
|
||||
}
|
||||
#qr > a:hover {
|
||||
background: none;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
height: 1px;
|
||||
background: repeating-linear-gradient(90deg,#fff,#fff 6px,transparent 1px,transparent 8px);
|
||||
}
|
||||
|
||||
ul {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.container {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
-o-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
margin: 1em auto;
|
||||
padding: 0 1em;
|
||||
min-width: 40vw;
|
||||
max-width: 100vw;
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
.container {
|
||||
max-width: 100vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.container {
|
||||
max-width: 80vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
.container {
|
||||
max-width: 60vw;
|
||||
}
|
||||
}
|
||||
|
||||
.flex {
|
||||
display: flex;
|
||||
}
|
||||
.flex-column {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.text-center {
|
||||
text-align: center;
|
||||
}
|
||||
.text-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.font-bold {
|
||||
font: bold;
|
||||
}
|
||||
.font-mono {
|
||||
font-family: "Lucida Console", "Courier New", monospace;
|
||||
}
|
||||
|
||||
.justify-center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.items-center {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.h-100vh {
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.w-100p {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.m-auto {
|
||||
margin: auto;
|
||||
}
|
||||
.mb-1 {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.mb-s {
|
||||
margin-bottom: 0.2em;
|
||||
}
|
||||
.mr-s {
|
||||
margin-right: 0.2em;
|
||||
}
|
||||
.pt-1 {
|
||||
padding-top: 1em;
|
||||
}
|
||||
.mx-1 {
|
||||
margin: 0 .2em;
|
||||
}
|
||||
|
||||
.word-wrap {
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.align-left {
|
||||
text-align: left;
|
||||
}
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
.align-right {
|
||||
text-align: right;
|
||||
}
|
||||
.scroll-x {
|
||||
overflow-x: scroll;
|
||||
}
|
@ -1,20 +1,45 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"git.ekzyis.com/ekzyis/delphi.market/server/router/context"
|
||||
"git.ekzyis.com/ekzyis/delphi.market/server/router/pages"
|
||||
"github.com/a-h/templ"
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
func httpErrorHandler(err error, c echo.Context) {
|
||||
c.Logger().Error(err)
|
||||
code := http.StatusInternalServerError
|
||||
if httpError, ok := err.(*echo.HTTPError); ok {
|
||||
code = httpError.Code
|
||||
func httpErrorHandler(sc context.Context) echo.HTTPErrorHandler {
|
||||
return func(err error, c echo.Context) {
|
||||
var (
|
||||
code = http.StatusInternalServerError
|
||||
page = pages.Error
|
||||
buf *bytes.Buffer
|
||||
)
|
||||
|
||||
c.Logger().Error(err)
|
||||
|
||||
if httpError, ok := err.(*echo.HTTPError); ok {
|
||||
code = httpError.Code
|
||||
}
|
||||
|
||||
if strings.Contains(err.Error(), "violates check constraint") ||
|
||||
strings.Contains(err.Error(), "violates unique constraint") {
|
||||
code = 400
|
||||
}
|
||||
|
||||
buf = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(buf)
|
||||
|
||||
if err = page(code).Render(context.RenderContext(sc, c), buf); err != nil {
|
||||
c.Logger().Error(err)
|
||||
code = http.StatusInternalServerError
|
||||
}
|
||||
|
||||
if err = c.HTML(code, buf.String()); err != nil {
|
||||
c.Logger().Error(err)
|
||||
}
|
||||
}
|
||||
if strings.Contains(err.Error(), "violates check constraint") || strings.Contains(err.Error(), "violates unique constraint") {
|
||||
code = 400
|
||||
}
|
||||
c.JSON(code, map[string]any{"status": code})
|
||||
}
|
||||
|
13
server/router/handler/about.go
Normal file
13
server/router/handler/about.go
Normal file
@ -0,0 +1,13 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"git.ekzyis.com/ekzyis/delphi.market/server/router/context"
|
||||
"git.ekzyis.com/ekzyis/delphi.market/server/router/pages"
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
func HandleAbout(sc context.Context) echo.HandlerFunc {
|
||||
return func(c echo.Context) error {
|
||||
return pages.About().Render(context.RenderContext(sc, c), c.Response().Writer)
|
||||
}
|
||||
}
|
@ -3,44 +3,49 @@ package handler
|
||||
import (
|
||||
"database/sql"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"git.ekzyis.com/ekzyis/delphi.market/db"
|
||||
"git.ekzyis.com/ekzyis/delphi.market/lib"
|
||||
"git.ekzyis.com/ekzyis/delphi.market/server/auth"
|
||||
"git.ekzyis.com/ekzyis/delphi.market/server/router/context"
|
||||
"git.ekzyis.com/ekzyis/delphi.market/server/router/pages"
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
func HandleLogin(sc context.Context) echo.HandlerFunc {
|
||||
return func(c echo.Context) error {
|
||||
var (
|
||||
lnAuth *auth.LNAuth
|
||||
dbLnAuth db.LNAuth
|
||||
err error
|
||||
expires time.Time = time.Now().Add(60 * 60 * 24 * 365 * time.Second)
|
||||
qr string
|
||||
data map[string]any
|
||||
)
|
||||
if lnAuth, err = auth.NewLNAuth(); err != nil {
|
||||
return err
|
||||
}
|
||||
dbLnAuth = db.LNAuth{K1: lnAuth.K1, LNURL: lnAuth.LNURL}
|
||||
if err = sc.Db.CreateLNAuth(&dbLnAuth); err != nil {
|
||||
return err
|
||||
}
|
||||
c.SetCookie(&http.Cookie{Name: "session", HttpOnly: true, Path: "/", Value: dbLnAuth.SessionId, Secure: true, Expires: expires})
|
||||
if qr, err = lib.ToQR(lnAuth.LNURL); err != nil {
|
||||
return err
|
||||
}
|
||||
data = map[string]any{
|
||||
"lnurl": lnAuth.LNURL,
|
||||
"qr": qr,
|
||||
}
|
||||
return c.JSON(http.StatusOK, data)
|
||||
return pages.Login().Render(context.RenderContext(sc, c), c.Response().Writer)
|
||||
}
|
||||
}
|
||||
|
||||
// func HandleLogin(sc context.Context) echo.HandlerFunc {
|
||||
// return func(c echo.Context) error {
|
||||
// var (
|
||||
// lnAuth *auth.LNAuth
|
||||
// dbLnAuth db.LNAuth
|
||||
// err error
|
||||
// expires time.Time = time.Now().Add(60 * 60 * 24 * 365 * time.Second)
|
||||
// qr string
|
||||
// data map[string]any
|
||||
// )
|
||||
// if lnAuth, err = auth.NewLNAuth(); err != nil {
|
||||
// return err
|
||||
// }
|
||||
// dbLnAuth = db.LNAuth{K1: lnAuth.K1, LNURL: lnAuth.LNURL}
|
||||
// if err = sc.Db.CreateLNAuth(&dbLnAuth); err != nil {
|
||||
// return err
|
||||
// }
|
||||
// c.SetCookie(&http.Cookie{Name: "session", HttpOnly: true, Path: "/", Value: dbLnAuth.SessionId, Secure: true, Expires: expires})
|
||||
// if qr, err = lib.ToQR(lnAuth.LNURL); err != nil {
|
||||
// return err
|
||||
// }
|
||||
// data = map[string]any{
|
||||
// "lnurl": lnAuth.LNURL,
|
||||
// "qr": qr,
|
||||
// }
|
||||
// return c.JSON(http.StatusOK, data)
|
||||
// }
|
||||
// }
|
||||
|
||||
func HandleLoginCallback(sc context.Context) echo.HandlerFunc {
|
||||
return func(c echo.Context) error {
|
||||
var (
|
||||
|
73
server/router/pages/about.templ
Normal file
73
server/router/pages/about.templ
Normal file
@ -0,0 +1,73 @@
|
||||
package pages
|
||||
|
||||
import "git.ekzyis.com/ekzyis/delphi.market/server/router/pages/components"
|
||||
|
||||
templ About() {
|
||||
<html>
|
||||
@components.Head()
|
||||
<body class="container">
|
||||
@components.Header()
|
||||
<div class="flex flex-col text-center">
|
||||
@components.Figlet("random", "about")
|
||||
</div>
|
||||
<div class="flex flex-col mb-3">
|
||||
<h1>📈 Prediction market?</h1>
|
||||
<p>Here is an animated corgi that explains everything you need to know about prediction markets in 7 minutes:</p>
|
||||
<iframe
|
||||
class="my-3 mx-auto"
|
||||
src="https://www.youtube.com/embed/DB5TfX7eaVY?si=FFG9wEun1VRl5p6w"
|
||||
title="YouTube video player"
|
||||
frameborder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
referrerpolicy="strict-origin-when-cross-origin"
|
||||
allowfullscreen
|
||||
></iframe>
|
||||
<h1>👨💻 FOSS?</h1>
|
||||
<p class="mb-3">
|
||||
Yes! The code is available on
|
||||
<a href="https://github.com/ekzyis/delphi.market/" target="_blank" rel="noopener noreferrer">Github</a>
|
||||
under the MIT License.
|
||||
</p>
|
||||
<h1>💬 Contact?</h1>
|
||||
<p class="mb-3">
|
||||
If you have feedback, questions, bugs, ideas or anything else, feel free to reach out to me:
|
||||
<br/>
|
||||
</p>
|
||||
<div class="text-center">
|
||||
<a
|
||||
href="https://stacker.news/ek"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
stacker news
|
||||
</a> |
|
||||
<a
|
||||
href="https://simplex.chat/contact#/?v=1-2&smp=smp%3A%2F%2F6iIcWT_dF2zN_w5xzZEY7HI2Prbh3ldP07YTyDexPjE%3D%40smp10.simplex.im%2FxNnPk9DkTbQJ6NckWom9mi5vheo_VPLm%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAnFUiU0M8jS1JY34LxUoPr7mdJlFZwf3pFkjRrhprdQs%253D%26srv%3Drb2pbttocvnbrngnwziclp2f4ckjq65kebafws6g4hy22cdaiv5dwjqd.onion"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
simplex
|
||||
</a> |
|
||||
<a
|
||||
href="https://t.me/ekzyis"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>telegram</a> |
|
||||
<a
|
||||
href="https://signal.me/#eu/Qa/0P3M1keYAUju1LMktobIwHvEKTEMaQfGjjkL5U5ajYpsa6uFKvp165NDCTOXK"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
signal
|
||||
</a> |
|
||||
<a
|
||||
href="https://njump.me/npub16x07c4qz05yhqe2gy2q2u9ax359d2lc0tsh6wn3y70dmk8nv2j2s96s89d"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>nostr</a>
|
||||
</div>
|
||||
</div>
|
||||
@components.Footer()
|
||||
</body>
|
||||
</html>
|
||||
}
|
13
server/router/pages/components/figlet.templ
Normal file
13
server/router/pages/components/figlet.templ
Normal file
@ -0,0 +1,13 @@
|
||||
package components
|
||||
|
||||
import "git.ekzyis.com/ekzyis/delphi.market/lib"
|
||||
|
||||
templ Figlet(font string, text string) {
|
||||
<code class="figlet">
|
||||
<strong>
|
||||
<pre>
|
||||
{ lib.Figlet(font, text) }
|
||||
</pre>
|
||||
</strong>
|
||||
</code>
|
||||
}
|
21
server/router/pages/components/footer.templ
Normal file
21
server/router/pages/components/footer.templ
Normal file
@ -0,0 +1,21 @@
|
||||
package components
|
||||
|
||||
import c "git.ekzyis.com/ekzyis/delphi.market/server/router/context"
|
||||
|
||||
templ Footer() {
|
||||
<footer class="flex justify-center px-1 pt-3">
|
||||
<div>
|
||||
<hr/>
|
||||
<small>
|
||||
<code>
|
||||
running
|
||||
<a
|
||||
href={ templ.SafeURL("https://github.com/ekzyis/delphi.market/commit/" + ctx.Value(c.CommitContextKey).(string)) }
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>{ ctx.Value(c.CommitContextKey).(string) }</a>
|
||||
</code>
|
||||
</small>
|
||||
</div>
|
||||
</footer>
|
||||
}
|
21
server/router/pages/components/head.templ
Normal file
21
server/router/pages/components/head.templ
Normal file
@ -0,0 +1,21 @@
|
||||
package components
|
||||
|
||||
import c "git.ekzyis.com/ekzyis/delphi.market/server/router/context"
|
||||
|
||||
templ Head() {
|
||||
<head>
|
||||
<title>delphi.market</title>
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico"/>
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/>
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"/>
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/>
|
||||
<link rel="manifest" href="/site.webmanifest"/>
|
||||
<link rel="stylesheet" href="/css/tailwind.css"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<meta name="theme-color" content="#091833"/>
|
||||
<script src="/js/htmx.js" integrity="sha384-Xh+GLLi0SMFPwtHQjT72aPG19QvKB8grnyRbYBNIdHWc2NkCrz65jlU7YrzO6qRp" crossorigin="anonymous"></script>
|
||||
if ctx.Value(c.EnvContextKey) == "development" {
|
||||
<script defer src="/js/hotreload.js"></script>
|
||||
}
|
||||
</head>
|
||||
}
|
21
server/router/pages/components/header.templ
Normal file
21
server/router/pages/components/header.templ
Normal file
@ -0,0 +1,21 @@
|
||||
package components
|
||||
|
||||
import c "git.ekzyis.com/ekzyis/delphi.market/server/router/context"
|
||||
|
||||
templ Header() {
|
||||
<header class="mt-3">
|
||||
<nav class="flex flex-row">
|
||||
<div>
|
||||
<a href="/">home</a>
|
||||
</div>
|
||||
<div class="ms-auto">
|
||||
<a href="/about">about</a>
|
||||
if ctx.Value(c.SessionContextKey) != nil {
|
||||
<a href="/user">user</a>
|
||||
} else {
|
||||
<a href="/login">login</a>
|
||||
}
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
}
|
21
server/router/pages/error.templ
Normal file
21
server/router/pages/error.templ
Normal file
@ -0,0 +1,21 @@
|
||||
package pages
|
||||
|
||||
import (
|
||||
"git.ekzyis.com/ekzyis/delphi.market/server/router/pages/components"
|
||||
"net/http"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
templ Error(code int) {
|
||||
<html>
|
||||
@components.Head()
|
||||
<body class="container">
|
||||
@components.Header()
|
||||
<div class="flex flex-col text-center">
|
||||
@components.Figlet("random", strconv.Itoa(code))
|
||||
<div class="font-mono mb-3">{ http.StatusText(code) }</div>
|
||||
</div>
|
||||
@components.Footer()
|
||||
</body>
|
||||
</html>
|
||||
}
|
@ -1,70 +1,17 @@
|
||||
package pages
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
c "git.ekzyis.com/ekzyis/delphi.market/server/router/context"
|
||||
)
|
||||
import "git.ekzyis.com/ekzyis/delphi.market/server/router/pages/components"
|
||||
|
||||
templ Index() {
|
||||
<html>
|
||||
<head>
|
||||
<title>delphi.market</title>
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico"/>
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/>
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"/>
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/>
|
||||
<link rel="manifest" href="/site.webmanifest"/>
|
||||
<link rel="stylesheet" href="/css/tailwind.css"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<meta name="theme-color" content="#091833"/>
|
||||
<script src="/js/htmx.js" integrity="sha384-Xh+GLLi0SMFPwtHQjT72aPG19QvKB8grnyRbYBNIdHWc2NkCrz65jlU7YrzO6qRp" crossorigin="anonymous"></script>
|
||||
if ctx.Value(c.EnvContextKey) == "development" {
|
||||
<script defer src="/js/hotreload.js"></script>
|
||||
}
|
||||
</head>
|
||||
@components.Head()
|
||||
<body class="container">
|
||||
<header class="flex flex-row text-center justify-center mt-1">
|
||||
<nav>
|
||||
<a href="/">home</a>
|
||||
if ctx.Value(c.SessionContextKey) != nil {
|
||||
<a href="/user">user</a>
|
||||
} else {
|
||||
<a href="/login">login</a>
|
||||
}
|
||||
</nav>
|
||||
</header>
|
||||
@components.Header()
|
||||
<div class="flex flex-col text-center">
|
||||
<code class="my-3">
|
||||
<strong>
|
||||
<!-- need to escape backslashes or backtick here ... -->
|
||||
<pre>
|
||||
{ fmt.Sprintf(""+
|
||||
" _ _ _ _ \n"+
|
||||
" __| | ___| |_ __ | |__ (_)\n"+
|
||||
" / _` |/ _ \\ | '_ \\| '_ \\| |\n"+
|
||||
"| (_| | __/ | |_) | | | | |\n"+
|
||||
" \\__,_|\\___|_| .__/|_| |_|_|\n"+
|
||||
" |_| \n") }
|
||||
</pre>
|
||||
</strong>
|
||||
</code>
|
||||
@components.Figlet("random", "delphi")
|
||||
<div class="font-mono my-3">A prediction market using the lightning network</div>
|
||||
</div>
|
||||
<footer class="flex justify-center px-1 pt-3">
|
||||
<div>
|
||||
<hr/>
|
||||
<small>
|
||||
<code>
|
||||
running
|
||||
<a
|
||||
href={ templ.SafeURL("https://github.com/ekzyis/delphi.market/commit/" + ctx.Value(c.CommitContextKey).(string)) }
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>{ ctx.Value(c.CommitContextKey).(string) }</a>
|
||||
</code>
|
||||
</small>
|
||||
</div>
|
||||
</footer>
|
||||
@components.Footer()
|
||||
</body>
|
||||
</html>
|
||||
}
|
||||
|
23
server/router/pages/login.templ
Normal file
23
server/router/pages/login.templ
Normal file
@ -0,0 +1,23 @@
|
||||
package pages
|
||||
|
||||
import "git.ekzyis.com/ekzyis/delphi.market/server/router/pages/components"
|
||||
|
||||
templ Login() {
|
||||
<html>
|
||||
@components.Head()
|
||||
<body class="container">
|
||||
@components.Header()
|
||||
<div class="flex flex-col text-center">
|
||||
@components.Figlet("random", "login")
|
||||
</div>
|
||||
<div class="flex flex-col mb-3 text-center">
|
||||
<button class="login lightning my-3">login with lightning</button>
|
||||
<button class="login nostr my-3">login with nostr</button>
|
||||
</div>
|
||||
<div class="flex flex-col mb-3 text-center">
|
||||
<small><a class="text-muted" href="/signup">new here?</a></small>
|
||||
</div>
|
||||
@components.Footer()
|
||||
</body>
|
||||
</html>
|
||||
}
|
@ -14,4 +14,6 @@ func Init(e *echo.Echo, sc Context) {
|
||||
e.Use(middleware.Session(sc))
|
||||
|
||||
e.GET("/", handler.HandleIndex(sc))
|
||||
e.GET("/about", handler.HandleAbout(sc))
|
||||
e.GET("/login", handler.HandleLogin(sc))
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ func New(ctx Context) *Server {
|
||||
AllowHeaders: []string{echo.HeaderOrigin, echo.HeaderContentType, echo.HeaderAccept},
|
||||
}))
|
||||
|
||||
e.HTTPErrorHandler = httpErrorHandler
|
||||
e.HTTPErrorHandler = httpErrorHandler(ctx)
|
||||
|
||||
s = &Server{e}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
module.exports = {
|
||||
content: ["./server/router/pages/*.templ"],
|
||||
content: ["./server/router/pages/**/*.templ"],
|
||||
theme: {
|
||||
container: {
|
||||
center: true,
|
||||
@ -8,5 +8,18 @@ module.exports = {
|
||||
},
|
||||
extend: {},
|
||||
},
|
||||
plugins: [],
|
||||
plugins: [
|
||||
function ({ addComponents }) {
|
||||
addComponents({
|
||||
'.container': {
|
||||
'@screen lg': {
|
||||
maxWidth: '768px',
|
||||
},
|
||||
'@screen xl': {
|
||||
maxWidth: '768px',
|
||||
},
|
||||
}
|
||||
})
|
||||
}
|
||||
],
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user