From 47bd0d9034b715906648fde7852fa838e92e9e95 Mon Sep 17 00:00:00 2001 From: Jovansonlee Cesar Date: Mon, 3 Feb 2020 11:24:08 +0800 Subject: Move back the README and license to the root folder --- LICENSE | 202 ++++++++++++++++++++++++++++++++ README.md | 348 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ svgbob/LICENSE | 202 -------------------------------- svgbob/README.md | 348 ------------------------------------------------------- 4 files changed, 550 insertions(+), 550 deletions(-) create mode 100644 LICENSE create mode 100644 README.md delete mode 100644 svgbob/LICENSE delete mode 100644 svgbob/README.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7dc9935 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016 Jovansonlee B. Cesar + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..27779ee --- /dev/null +++ b/README.md @@ -0,0 +1,348 @@ +# Svgbob + +svgbob’s current version badge + + + +Svgbob is an ascii to svg converter. + +There is a Work-in-Progress spec [here](https://github.com/ivanceras/svgbob/blob/master/spec.md) +Contribution to the spec is welcomed. + +#### Please support this project: + [![Become a patron](https://c5.patreon.com/external/logo/become_a_patron_button.png)](https://www.patreon.com/ivanceras) + + +[Demo](http://ivanceras.github.io/svgbob-editor/) + +[Docs](https://docs.rs/svgbob) + + +# Using in command line + +`cargo install svgbob_cli` + +`svgbob` normally operates on stdin and stdout: +```console +$ svgbob < examples/long.bob > long.svg +``` +produces an SVG in `long.svg` similar to the one produced by the old `main` binary. `svgbob` also allows passing arguments instead: +```console +$ svgbob examples/long.bob -o long.svg +``` +And you can mix and match: +```console +$ svgbob -o long.svg < examples/long.bob +$ svgbob examples/long.bob > long.svg +``` + +You can pipe string from the output of other program: +```console +echo -e "+--+\n| |\n+--+" | svgbob +``` +You can also pass an inline string: +```console +svgbob -s -- "+--+\n| |\n+--+" +``` + +This is also documented in the output of `svgbob --help`: +```console + +svgbob 0.2.5 +SvgBobRus is an ascii to svg converter + +USAGE: + svgbob [FLAGS] [OPTIONS] [input] [SUBCOMMAND] + +FLAGS: + -h, --help Prints help information + -s parse an inline string + -V, --version Prints version information + +OPTIONS: + --font-family text will be rendered with this font (default: 'arial') + --font-size text will be rendered with this font size (default: 14) + -o, --output where to write svg output [default: STDOUT] + --scale scale the entire svg (dimensions, font size, stroke width) by this factor + (default: 1) + --stroke-width stroke width for all lines (default: 2) + +ARGS: + svgbob text file or inline string to parse [default: STDIN] + +SUBCOMMANDS: + build Batch convert files to svg. + help Prints this message or the help of the given subcommand(s) + +``` + + + + + + +The SVG image is generated from the ascii text below. + +```bob + +Svgbob is a diagramming model +which uses a set of typing characters +to approximate the intended shape. + + .---. + /-o-/-- + .-/ / /-> + ( * \/ + '-. \ + \ / + ' +It uses a combination of these characters +"which are readily available on your keyboards". + +What can it do? + + o-> Basic shapes + . + +------+ .------. .------. /\ .' `. + | | | | ( ) / \ .' `. + +------+ '------' '------' '----' `. .' + _______ ________ `.' ^ / + / \ /\ \ \ ----> | ^ / / + / \ / \ ) ) <---- | | / v + \ / \ / /_______/ v | + \_______/ \/ + + .-----------. . <. .> . ^ \ + ( ) ( ) ( ) \ \ + '-----+ ,---' `> ' ` <' \ v + |/ + + + o-> Quick logo scribbles + .---. _ + /-o-/-- .--. |-| .--. + .-/ / /-> /--. \ .--)-| .--.-. //.-.\ + ( * \/ / O )| | |-| |->| | (+(-*-)) + '-. \ /\ |-// . * | '--'-' \\'-'/ + \ / \ '+'/ \__/ '--' + ' '--' + + o-> Even unicode box drawing characters are supported + ┌─┬┐ ╔═╦╗ ╓─╥╖ ╒═╤╕ + ├─┼┤ ╠═╬╣ ╟─╫╢ ╞═╪╡ + └─┴┘ ╚═╩╝ ╙─╨╜ ╘═╧╛ + + + o-> Sequence Diagrams + + .---> F + A B C D / + *-------*-----*---*----*-----> E + \ ^ \ + v / '---> G + B --> C -' + + + o-> Statistical charts + + + E +-------------------------*--+ E | o + D |-------------------*--*--|--* D | o o | o + C |-------------*--* | | | | C | o o | | | | + B |-------*--* | | | | | | B | o o | | | | | | + A +-*--*--+--+--+--+--+--+--+--+ A +-o--o--+--+--+--+--+--+--+--+ + 5 10 15 20 25 30 35 40 45 50 5 10 15 20 25 30 35 40 45 50 + + + + + + + + + + + o-> Flow charts + .--. .---. .---. .---. .---. .---. .---. + | | OS API '---' '---' '---' '---' '---' '---' + v | | | | | | | + .-. .-. .-. | v v | v | v + .-->'-' '-' '-' | .------------. | .-----------. | .-----. + | \ | / | | Filesystem | | | Scheduler | | | MMU | + | v . v | '------------' | '-----------' | '-----' + '_______/ \_____| | | | | + \ / v | | v + | ____ .----. | | .---------. + '--> /___/ | IO |<----' | | Network | + '----' | '---------' + | | | + v v v + .---------------------------------------. + | HAL | + '---------------------------------------' + + + o-> Block diagrams + + .-,( ),-. + ___ _ .-( )-. + [___]|=| -->( ) __________ + /::/ |_| '-( ).-' --->[_...__...°] + '-.( ).-' + \ ____ __ + '--->| | |==| + |____| | | + /::::/ |__| + + o-> Mindmaps + + .--> Alpha + / + .----> Initial Release + Planning *-------. / \ + \ / '---> Patch 1 + Initial research \ / \ + * \ / '--> Patch 2 + \ \ .---------> Beta + \ \ / + \ o o _______ + \ .---. o--.___ / \ + '------> ( ) '----*---> . Release . + `---' o \_______/ + o o o \ + / \ \ \ + .--' \ \ \ + / \ \ '----+-> Push backs + . \ \ \ + /| \ \ '----> Setbacks + / . \ \ + V /| \ '-----> Reception + Team / . \ + v /| \ + Worklaod / . '-->> Career change + V / + PTO / + V + Bug + + + o-> It can do complex stuff such as circuit diagrams + + + +10-15V ___0,047R + *------o------o-|___|-o--o---------o----o-------. + | | | | | | | + --- | | .+. | | | + 470uF ### | | | | 2k2 | | | + | + | | | | | | .+. + *------o '--. | '+' .+. | '-' + | |6 |7 |8 1k | | | | + GND .-+----+--+--. | | | | + | | '+' | | + | |1 | |/ BC | + | +------o--+ 547 | + | | | |`> | + | | ,+. | | + | | 220R| | o----||-+ IRF9Z34 + | | | | | |+-> + | MC34063 | `+' | ||-+ + | | | | | BYV29 -12V6 + | | '----' o--|<-o----o--X OUT + | |2 | | | + | |--o C| | | + | | GND 30uH C| | --- 470 + | |3 1nF C| | ### uF + | |-------||--. | | | + + '-----+----+-' | GND | GND + 5| 4| | | + | '-------------o-------------o + | ___ | + '------/\/\/------------o--|___|-' + | 1k0 + .+. + | | 5k6 + 3k3 + | | in Serie + '+' + | + GND + + .-------------. + / Advantages: / +'-------------' + -* Plain text format + Ultimately portable, backward compatible and future proof. + -* Degrades gracefully + Even when not using a graphical renderer, it would still looks good + as text based diagrams. Paste the text in your source code. + -* Easiest to use. Anyone knows how to edit text. + + + About Svgbob editor: +======================= + + -> The editor is a plain text editor in replace and block mode + with smarter prediction on where you intended to type next. + i.e: typing / will move the cursor north east to continue the line. + -> The editor also has an xray lens that reveals the underlying characters + underneath that comprises the graph. Move the mouse around to see the characters + that build up which image, while holding the mouse down + momentarily cancels the xray + + .------------------------------. +( This page is editable. Try it! ) + '------------------------------' + ++----------+ +| FAQ: | ++----------+ + + Q: "Why is there too much spacing on words" + A: It is an intended behaviour as all the text are meant + for labels. Each words of sentences corresponds to each separate text + elements in the SVG output in order to maintain + "a bit of alignment closes to their original location. *[0]" + + Q: Do people really type in diagrams in text, isn't that tedious? + A: Using simple text editors to make text diagrams like these are really + "tedious. Power users of vim or emacs can make diagrams with ease.*[1]" + + Q: Your editor sucks! + A: That's the beauty of plain text. + Use whatever editor you like. + + Q: "How to integrate this in markdown?" + A: "There is a project called [Spongedown](https://ivanceras.github.io/spongedown)" + which specifically does that. The svgbob diagramming feature is guarded + with ```bob code block so as not to pollute the markdown syntax. + + +"Footnotes:" +"*[0]: Fonts mostly condensed words to look" + and render nicely. Monospace fonts should have solved this + problem, however the monospace fonts used in browsers + are not really monospaced (i.e CJK full-width characters + are only rendered 1.5x larger than ascii characters, + "instead of 2x larger). In the terminal however, full-width" + characters are rendered 2x larger using either monospace + or non-monspaced fonts. + + .------------. | .-----------. | .-----. Look at that + | 文件系统 | | | 调度器 | | | MMU | --------------> + '------------' | '-----------' | '-----' monospace eh? + + Also using monofont on final output document makes it look like meant + "something for devs, instead of documents for all." + For a more heavy usage of text just use markdown format, + "there is also [Spongedown](https://ivanceras.github.io/spongedown)" + which allow you to write in markdown, combine it with svgbob diagrams, + "together some other features like csv and math equations." + +"*[1] In vim, there is a drawIt plugin which helps you easily draw ascii" + diagrams. For vim without using any plugins, you can use combination + "of BLOCK mode editing(CTRL-v), REPLACE mode(SHIFT-r)", + :set virtualedit=all to easily move the cursor everywhere, + "cut, copy and paste text in block mode ( jjll 1vp)". + For emacs: there is artist mode. + +``` + diff --git a/svgbob/LICENSE b/svgbob/LICENSE deleted file mode 100644 index 7dc9935..0000000 --- a/svgbob/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2016 Jovansonlee B. Cesar - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/svgbob/README.md b/svgbob/README.md deleted file mode 100644 index 27779ee..0000000 --- a/svgbob/README.md +++ /dev/null @@ -1,348 +0,0 @@ -# Svgbob - -svgbob’s current version badge - - - -Svgbob is an ascii to svg converter. - -There is a Work-in-Progress spec [here](https://github.com/ivanceras/svgbob/blob/master/spec.md) -Contribution to the spec is welcomed. - -#### Please support this project: - [![Become a patron](https://c5.patreon.com/external/logo/become_a_patron_button.png)](https://www.patreon.com/ivanceras) - - -[Demo](http://ivanceras.github.io/svgbob-editor/) - -[Docs](https://docs.rs/svgbob) - - -# Using in command line - -`cargo install svgbob_cli` - -`svgbob` normally operates on stdin and stdout: -```console -$ svgbob < examples/long.bob > long.svg -``` -produces an SVG in `long.svg` similar to the one produced by the old `main` binary. `svgbob` also allows passing arguments instead: -```console -$ svgbob examples/long.bob -o long.svg -``` -And you can mix and match: -```console -$ svgbob -o long.svg < examples/long.bob -$ svgbob examples/long.bob > long.svg -``` - -You can pipe string from the output of other program: -```console -echo -e "+--+\n| |\n+--+" | svgbob -``` -You can also pass an inline string: -```console -svgbob -s -- "+--+\n| |\n+--+" -``` - -This is also documented in the output of `svgbob --help`: -```console - -svgbob 0.2.5 -SvgBobRus is an ascii to svg converter - -USAGE: - svgbob [FLAGS] [OPTIONS] [input] [SUBCOMMAND] - -FLAGS: - -h, --help Prints help information - -s parse an inline string - -V, --version Prints version information - -OPTIONS: - --font-family text will be rendered with this font (default: 'arial') - --font-size text will be rendered with this font size (default: 14) - -o, --output where to write svg output [default: STDOUT] - --scale scale the entire svg (dimensions, font size, stroke width) by this factor - (default: 1) - --stroke-width stroke width for all lines (default: 2) - -ARGS: - svgbob text file or inline string to parse [default: STDIN] - -SUBCOMMANDS: - build Batch convert files to svg. - help Prints this message or the help of the given subcommand(s) - -``` - - - - - - -The SVG image is generated from the ascii text below. - -```bob - -Svgbob is a diagramming model -which uses a set of typing characters -to approximate the intended shape. - - .---. - /-o-/-- - .-/ / /-> - ( * \/ - '-. \ - \ / - ' -It uses a combination of these characters -"which are readily available on your keyboards". - -What can it do? - - o-> Basic shapes - . - +------+ .------. .------. /\ .' `. - | | | | ( ) / \ .' `. - +------+ '------' '------' '----' `. .' - _______ ________ `.' ^ / - / \ /\ \ \ ----> | ^ / / - / \ / \ ) ) <---- | | / v - \ / \ / /_______/ v | - \_______/ \/ - - .-----------. . <. .> . ^ \ - ( ) ( ) ( ) \ \ - '-----+ ,---' `> ' ` <' \ v - |/ - - - o-> Quick logo scribbles - .---. _ - /-o-/-- .--. |-| .--. - .-/ / /-> /--. \ .--)-| .--.-. //.-.\ - ( * \/ / O )| | |-| |->| | (+(-*-)) - '-. \ /\ |-// . * | '--'-' \\'-'/ - \ / \ '+'/ \__/ '--' - ' '--' - - o-> Even unicode box drawing characters are supported - ┌─┬┐ ╔═╦╗ ╓─╥╖ ╒═╤╕ - ├─┼┤ ╠═╬╣ ╟─╫╢ ╞═╪╡ - └─┴┘ ╚═╩╝ ╙─╨╜ ╘═╧╛ - - - o-> Sequence Diagrams - - .---> F - A B C D / - *-------*-----*---*----*-----> E - \ ^ \ - v / '---> G - B --> C -' - - - o-> Statistical charts - - - E +-------------------------*--+ E | o - D |-------------------*--*--|--* D | o o | o - C |-------------*--* | | | | C | o o | | | | - B |-------*--* | | | | | | B | o o | | | | | | - A +-*--*--+--+--+--+--+--+--+--+ A +-o--o--+--+--+--+--+--+--+--+ - 5 10 15 20 25 30 35 40 45 50 5 10 15 20 25 30 35 40 45 50 - - - - - - - - - - - o-> Flow charts - .--. .---. .---. .---. .---. .---. .---. - | | OS API '---' '---' '---' '---' '---' '---' - v | | | | | | | - .-. .-. .-. | v v | v | v - .-->'-' '-' '-' | .------------. | .-----------. | .-----. - | \ | / | | Filesystem | | | Scheduler | | | MMU | - | v . v | '------------' | '-----------' | '-----' - '_______/ \_____| | | | | - \ / v | | v - | ____ .----. | | .---------. - '--> /___/ | IO |<----' | | Network | - '----' | '---------' - | | | - v v v - .---------------------------------------. - | HAL | - '---------------------------------------' - - - o-> Block diagrams - - .-,( ),-. - ___ _ .-( )-. - [___]|=| -->( ) __________ - /::/ |_| '-( ).-' --->[_...__...°] - '-.( ).-' - \ ____ __ - '--->| | |==| - |____| | | - /::::/ |__| - - o-> Mindmaps - - .--> Alpha - / - .----> Initial Release - Planning *-------. / \ - \ / '---> Patch 1 - Initial research \ / \ - * \ / '--> Patch 2 - \ \ .---------> Beta - \ \ / - \ o o _______ - \ .---. o--.___ / \ - '------> ( ) '----*---> . Release . - `---' o \_______/ - o o o \ - / \ \ \ - .--' \ \ \ - / \ \ '----+-> Push backs - . \ \ \ - /| \ \ '----> Setbacks - / . \ \ - V /| \ '-----> Reception - Team / . \ - v /| \ - Worklaod / . '-->> Career change - V / - PTO / - V - Bug - - - o-> It can do complex stuff such as circuit diagrams - - - +10-15V ___0,047R - *------o------o-|___|-o--o---------o----o-------. - | | | | | | | - --- | | .+. | | | - 470uF ### | | | | 2k2 | | | - | + | | | | | | .+. - *------o '--. | '+' .+. | '-' - | |6 |7 |8 1k | | | | - GND .-+----+--+--. | | | | - | | '+' | | - | |1 | |/ BC | - | +------o--+ 547 | - | | | |`> | - | | ,+. | | - | | 220R| | o----||-+ IRF9Z34 - | | | | | |+-> - | MC34063 | `+' | ||-+ - | | | | | BYV29 -12V6 - | | '----' o--|<-o----o--X OUT - | |2 | | | - | |--o C| | | - | | GND 30uH C| | --- 470 - | |3 1nF C| | ### uF - | |-------||--. | | | + - '-----+----+-' | GND | GND - 5| 4| | | - | '-------------o-------------o - | ___ | - '------/\/\/------------o--|___|-' - | 1k0 - .+. - | | 5k6 + 3k3 - | | in Serie - '+' - | - GND - - .-------------. - / Advantages: / -'-------------' - -* Plain text format - Ultimately portable, backward compatible and future proof. - -* Degrades gracefully - Even when not using a graphical renderer, it would still looks good - as text based diagrams. Paste the text in your source code. - -* Easiest to use. Anyone knows how to edit text. - - - About Svgbob editor: -======================= - - -> The editor is a plain text editor in replace and block mode - with smarter prediction on where you intended to type next. - i.e: typing / will move the cursor north east to continue the line. - -> The editor also has an xray lens that reveals the underlying characters - underneath that comprises the graph. Move the mouse around to see the characters - that build up which image, while holding the mouse down - momentarily cancels the xray - - .------------------------------. -( This page is editable. Try it! ) - '------------------------------' - -+----------+ -| FAQ: | -+----------+ - - Q: "Why is there too much spacing on words" - A: It is an intended behaviour as all the text are meant - for labels. Each words of sentences corresponds to each separate text - elements in the SVG output in order to maintain - "a bit of alignment closes to their original location. *[0]" - - Q: Do people really type in diagrams in text, isn't that tedious? - A: Using simple text editors to make text diagrams like these are really - "tedious. Power users of vim or emacs can make diagrams with ease.*[1]" - - Q: Your editor sucks! - A: That's the beauty of plain text. - Use whatever editor you like. - - Q: "How to integrate this in markdown?" - A: "There is a project called [Spongedown](https://ivanceras.github.io/spongedown)" - which specifically does that. The svgbob diagramming feature is guarded - with ```bob code block so as not to pollute the markdown syntax. - - -"Footnotes:" -"*[0]: Fonts mostly condensed words to look" - and render nicely. Monospace fonts should have solved this - problem, however the monospace fonts used in browsers - are not really monospaced (i.e CJK full-width characters - are only rendered 1.5x larger than ascii characters, - "instead of 2x larger). In the terminal however, full-width" - characters are rendered 2x larger using either monospace - or non-monspaced fonts. - - .------------. | .-----------. | .-----. Look at that - | 文件系统 | | | 调度器 | | | MMU | --------------> - '------------' | '-----------' | '-----' monospace eh? - - Also using monofont on final output document makes it look like meant - "something for devs, instead of documents for all." - For a more heavy usage of text just use markdown format, - "there is also [Spongedown](https://ivanceras.github.io/spongedown)" - which allow you to write in markdown, combine it with svgbob diagrams, - "together some other features like csv and math equations." - -"*[1] In vim, there is a drawIt plugin which helps you easily draw ascii" - diagrams. For vim without using any plugins, you can use combination - "of BLOCK mode editing(CTRL-v), REPLACE mode(SHIFT-r)", - :set virtualedit=all to easily move the cursor everywhere, - "cut, copy and paste text in block mode ( jjll 1vp)". - For emacs: there is artist mode. - -``` - -- cgit v1.2.3