├── img
├── .gitignore
├── bugs.png
├── ascii1.png
├── ascii2.png
├── ascii3.png
├── ascii4.png
├── ascii5.png
├── ascii6.png
├── github.png
├── unicode1.png
├── unicode2.png
├── unicode3.png
├── unicode4.png
├── unicode5.png
└── unicode6.png
├── user_manual
├── table_example.png
└── README.md
├── .gitignore
├── css
└── main.css
├── vendor
├── polyfills
│ └── console.js
└── boilerplate
│ └── main.css
├── LICENSE.md
├── README.md
├── 404.html
├── index.html
└── js
└── main.js
/img/.gitignore:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/img/bugs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlainTextTools/plain-text-table/HEAD/img/bugs.png
--------------------------------------------------------------------------------
/img/ascii1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlainTextTools/plain-text-table/HEAD/img/ascii1.png
--------------------------------------------------------------------------------
/img/ascii2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlainTextTools/plain-text-table/HEAD/img/ascii2.png
--------------------------------------------------------------------------------
/img/ascii3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlainTextTools/plain-text-table/HEAD/img/ascii3.png
--------------------------------------------------------------------------------
/img/ascii4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlainTextTools/plain-text-table/HEAD/img/ascii4.png
--------------------------------------------------------------------------------
/img/ascii5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlainTextTools/plain-text-table/HEAD/img/ascii5.png
--------------------------------------------------------------------------------
/img/ascii6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlainTextTools/plain-text-table/HEAD/img/ascii6.png
--------------------------------------------------------------------------------
/img/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlainTextTools/plain-text-table/HEAD/img/github.png
--------------------------------------------------------------------------------
/img/unicode1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlainTextTools/plain-text-table/HEAD/img/unicode1.png
--------------------------------------------------------------------------------
/img/unicode2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlainTextTools/plain-text-table/HEAD/img/unicode2.png
--------------------------------------------------------------------------------
/img/unicode3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlainTextTools/plain-text-table/HEAD/img/unicode3.png
--------------------------------------------------------------------------------
/img/unicode4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlainTextTools/plain-text-table/HEAD/img/unicode4.png
--------------------------------------------------------------------------------
/img/unicode5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlainTextTools/plain-text-table/HEAD/img/unicode5.png
--------------------------------------------------------------------------------
/img/unicode6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlainTextTools/plain-text-table/HEAD/img/unicode6.png
--------------------------------------------------------------------------------
/user_manual/table_example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PlainTextTools/plain-text-table/HEAD/user_manual/table_example.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Include your project-specific ignores in this file
2 | # Read about how to use .gitignore: https://help.github.com/articles/ignoring-files
3 |
--------------------------------------------------------------------------------
/css/main.css:
--------------------------------------------------------------------------------
1 | .navbar-nav a img {
2 | width: 20px;
3 | height: 20px;
4 | }
5 | #gen-trigger {
6 | margin-bottom: 10px;
7 | }
8 | .footer-table th, .footer-table td{
9 | width: 33%;
10 | }
11 |
12 | .highlighted {
13 | color: red;
14 | background-color: yellow;
15 | }
16 |
17 | #predefined p {
18 | text-align: center;
19 | }
--------------------------------------------------------------------------------
/vendor/polyfills/console.js:
--------------------------------------------------------------------------------
1 | // Avoid `console` errors in browsers that lack a console.
2 | (function() {
3 | var method;
4 | var noop = function () {};
5 | var methods = [
6 | 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
7 | 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
8 | 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
9 | 'timeStamp', 'trace', 'warn'
10 | ];
11 | var length = methods.length;
12 | var console = (window.console = window.console || {});
13 |
14 | while (length--) {
15 | method = methods[length];
16 |
17 | // Only stub undefined methods.
18 | if (!console[method]) {
19 | console[method] = noop;
20 | }
21 | }
22 | }());
23 |
24 | // Place any jQuery/helper plugins in here.
25 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | Copyright (c) HTML5 Boilerplate
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of
4 | this software and associated documentation files (the "Software"), to deal in
5 | the Software without restriction, including without limitation the rights to
6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7 | of the Software, and to permit persons to whom the Software is furnished to do
8 | so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 | SOFTWARE.
20 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Plain Text Table
2 |
3 | Interactively create and edit tables and export them to plain text.
4 |
5 | ## Use the tool online
6 |
7 | Please visit : http://plaintexttools.github.io/plain-text-table
8 |
9 | ## Features
10 |
11 | * Interactive input table (using [handsontable](http://handsontable.com/))
12 | * Unicode or ASCII output
13 | * Flexible border configuration
14 | * Merged cell support (colspan and rowspan)
15 | * Multiline text in the cells
16 | * Text alignement support (horizontal and vertical)
17 | * Predefined style
18 |
19 | All configuration options explained in the [user manual](user_manual/README.md).
20 |
21 | ## Output examples
22 |
23 | Unicode characters with multiline and merged cells:
24 |
25 | ╔════════╦══════╤═══════════╤═════════╤═══════════╤═══════════╤═════════════╗
26 | ║ Who? ║ Code │ Monday │ Tuesday │ Wednesday │ Thursday │ Friday ║
27 | ╠════════╬══════╪═══════════╧═════════╧═══════════╪═══════════╪═════════════╣
28 | ║ Team A ║ 23 │ Proin id nunc │ Fringilla │ Lorem ║
29 | ║ ║ │ │ │ Ipsum ║
30 | ╟────────╫──────┼───────────┬─────────┬───────────┴───────────┼─────────────╢
31 | ║ ║ │ │ Ante │ │ ║
32 | ║ Team B ║ 4 │ Fermentum │ Ipisum │ Amet │ Lyks ║
33 | ║ ║ │ │ Primis │ │ ║
34 | ╟────────╫──────┼───────────┼─────────┼───────────┬───────────┼─────────────╢
35 | ║ Team C ║ 52 │ Metus ex │ Dxow │ Malesuada │ │ Ullamcorper ║
36 | ╟────────╫──────┼───────────┴─────────┼───────────┤ Vulputate ├─────────────╢
37 | ║ Team D ║ 19 │ Ornare │ Tincidunt │ │ Rwe ║
38 | ╚════════╩══════╧═════════════════════╧═══════════╧═══════════╧═════════════╝
39 |
40 | Ascii characters with spreadsheet headers:
41 |
42 | +===+========+===========+=======+=====+
43 | | | A | B | C | D |
44 | +===+========+===========+=======+=====+
45 | | 1 | Alice | Johnson | | 293 |
46 | +---+--------+-----------+-------+-----+
47 | | 2 | Bob | Smith | ????? | 2 |
48 | +---+--------+-----------+-------+-----+
49 | | 3 | Carrie | Sheffield | ? | 42 |
50 | +===+========+===========+=======+=====+
51 |
52 | ## Get in touch / bug tracker
53 |
54 | Use the [plain-text-table issue tracker](https://github.com/PlainTextTools/plain-text-table/issues) on GitHub.
55 |
56 | ## License
57 |
58 | [HTML5 Boilerplate](LICENSE.md)
59 |
--------------------------------------------------------------------------------
/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Page Not Found :(
6 |
141 |
142 |
143 |
144 |
Not found :(
145 |
Sorry, but the page you were trying to view does not exist.
146 |
It looks like this was the result of either:
147 |
148 |
a mistyped address
149 |
an out-of-date link
150 |
151 |
154 |
155 |
156 |
157 |
158 |
--------------------------------------------------------------------------------
/vendor/boilerplate/main.css:
--------------------------------------------------------------------------------
1 | /*! HTML5 Boilerplate v4.3.0 | MIT License | http://h5bp.com/ */
2 |
3 | /*
4 | * What follows is the result of much research on cross-browser styling.
5 | * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
6 | * Kroc Camen, and the H5BP dev community and team.
7 | */
8 |
9 | /* ==========================================================================
10 | Base styles: opinionated defaults
11 | ========================================================================== */
12 |
13 | html,
14 | button,
15 | input,
16 | select,
17 | textarea {
18 | color: #222;
19 | }
20 |
21 | html {
22 | font-size: 1em;
23 | line-height: 1.4;
24 | }
25 |
26 | /*
27 | * Remove text-shadow in selection highlight: h5bp.com/i
28 | * These selection rule sets have to be separate.
29 | * Customize the background color to match your design.
30 | */
31 |
32 | ::-moz-selection {
33 | background: #b3d4fc;
34 | text-shadow: none;
35 | }
36 |
37 | ::selection {
38 | background: #b3d4fc;
39 | text-shadow: none;
40 | }
41 |
42 | /*
43 | * A better looking default horizontal rule
44 | */
45 |
46 | hr {
47 | display: block;
48 | height: 1px;
49 | border: 0;
50 | border-top: 1px solid #ccc;
51 | margin: 1em 0;
52 | padding: 0;
53 | }
54 |
55 | /*
56 | * Remove the gap between images, videos, audio and canvas and the bottom of
57 | * their containers: h5bp.com/i/440
58 | */
59 |
60 | audio,
61 | canvas,
62 | img,
63 | video {
64 | vertical-align: middle;
65 | }
66 |
67 | /*
68 | * Remove default fieldset styles.
69 | */
70 |
71 | fieldset {
72 | border: 0;
73 | margin: 0;
74 | padding: 0;
75 | }
76 |
77 | /*
78 | * Allow only vertical resizing of textareas.
79 | */
80 |
81 | textarea {
82 | resize: vertical;
83 | }
84 |
85 | /* ==========================================================================
86 | Browse Happy prompt
87 | ========================================================================== */
88 |
89 | .browsehappy {
90 | margin: 0.2em 0;
91 | background: #ccc;
92 | color: #000;
93 | padding: 0.2em 0;
94 | }
95 |
96 | /* ==========================================================================
97 | Author's custom styles
98 | ========================================================================== */
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 | /* ==========================================================================
117 | Helper classes
118 | ========================================================================== */
119 |
120 | /*
121 | * Image replacement
122 | */
123 |
124 | .ir {
125 | background-color: transparent;
126 | border: 0;
127 | overflow: hidden;
128 | /* IE 6/7 fallback */
129 | *text-indent: -9999px;
130 | }
131 |
132 | .ir:before {
133 | content: "";
134 | display: block;
135 | width: 0;
136 | height: 150%;
137 | }
138 |
139 | /*
140 | * Hide from both screenreaders and browsers: h5bp.com/u
141 | */
142 |
143 | .hidden {
144 | display: none !important;
145 | visibility: hidden;
146 | }
147 |
148 | /*
149 | * Hide only visually, but have it available for screenreaders: h5bp.com/v
150 | */
151 |
152 | .visuallyhidden {
153 | border: 0;
154 | clip: rect(0 0 0 0);
155 | height: 1px;
156 | margin: -1px;
157 | overflow: hidden;
158 | padding: 0;
159 | position: absolute;
160 | width: 1px;
161 | }
162 |
163 | /*
164 | * Extends the .visuallyhidden class to allow the element to be focusable
165 | * when navigated to via the keyboard: h5bp.com/p
166 | */
167 |
168 | .visuallyhidden.focusable:active,
169 | .visuallyhidden.focusable:focus {
170 | clip: auto;
171 | height: auto;
172 | margin: 0;
173 | overflow: visible;
174 | position: static;
175 | width: auto;
176 | }
177 |
178 | /*
179 | * Hide visually and from screenreaders, but maintain layout
180 | */
181 |
182 | .invisible {
183 | visibility: hidden;
184 | }
185 |
186 | /*
187 | * Clearfix: contain floats
188 | *
189 | * For modern browsers
190 | * 1. The space content is one way to avoid an Opera bug when the
191 | * `contenteditable` attribute is included anywhere else in the document.
192 | * Otherwise it causes space to appear at the top and bottom of elements
193 | * that receive the `clearfix` class.
194 | * 2. The use of `table` rather than `block` is only necessary if using
195 | * `:before` to contain the top-margins of child elements.
196 | */
197 |
198 | .clearfix:before,
199 | .clearfix:after {
200 | content: " "; /* 1 */
201 | display: table; /* 2 */
202 | }
203 |
204 | .clearfix:after {
205 | clear: both;
206 | }
207 |
208 | /*
209 | * For IE 6/7 only
210 | * Include this rule to trigger hasLayout and contain floats.
211 | */
212 |
213 | .clearfix {
214 | *zoom: 1;
215 | }
216 |
217 | /* ==========================================================================
218 | EXAMPLE Media Queries for Responsive Design.
219 | These examples override the primary ('mobile first') styles.
220 | Modify as content requires.
221 | ========================================================================== */
222 |
223 | @media only screen and (min-width: 35em) {
224 | /* Style adjustments for viewports that meet the condition */
225 | }
226 |
227 | @media print,
228 | (-o-min-device-pixel-ratio: 5/4),
229 | (-webkit-min-device-pixel-ratio: 1.25),
230 | (min-resolution: 120dpi) {
231 | /* Style adjustments for high resolution devices */
232 | }
233 |
234 | /* ==========================================================================
235 | Print styles.
236 | Inlined to avoid required HTTP connection: h5bp.com/r
237 | ========================================================================== */
238 |
239 | @media print {
240 | * {
241 | background: transparent !important;
242 | color: #000 !important; /* Black prints faster: h5bp.com/s */
243 | box-shadow: none !important;
244 | text-shadow: none !important;
245 | }
246 |
247 | a,
248 | a:visited {
249 | text-decoration: underline;
250 | }
251 |
252 | a[href]:after {
253 | content: " (" attr(href) ")";
254 | }
255 |
256 | abbr[title]:after {
257 | content: " (" attr(title) ")";
258 | }
259 |
260 | /*
261 | * Don't show links for images, or javascript/internal links
262 | */
263 |
264 | .ir a:after,
265 | a[href^="javascript:"]:after,
266 | a[href^="#"]:after {
267 | content: "";
268 | }
269 |
270 | pre,
271 | blockquote {
272 | border: 1px solid #999;
273 | page-break-inside: avoid;
274 | }
275 |
276 | thead {
277 | display: table-header-group; /* h5bp.com/t */
278 | }
279 |
280 | tr,
281 | img {
282 | page-break-inside: avoid;
283 | }
284 |
285 | img {
286 | max-width: 100% !important;
287 | }
288 |
289 | @page {
290 | margin: 0.5cm;
291 | }
292 |
293 | p,
294 | h2,
295 | h3 {
296 | orphans: 3;
297 | widows: 3;
298 | }
299 |
300 | h2,
301 | h3 {
302 | page-break-after: avoid;
303 | }
304 | }
305 |
--------------------------------------------------------------------------------
/user_manual/README.md:
--------------------------------------------------------------------------------
1 | # Plain Text Table - User Manual
2 |
3 | Interactively create and edit tables and export them to plain text.
4 | The tool can be used [online](http://lorefnon.me/plain-text-table).
5 |
6 | ## Edit the table
7 |
8 | Edit the grid and fill it with the the data you want to represent as text.
9 |
10 | 
11 |
12 | With the context menu in each cell, the text alignment (vertical and horizontal) can be set.
13 | Those properties are reflected in the output.
14 |
15 | Merged cells are supported (colspan and rowspan).
16 | Select the cells you want to merge, use the context menu and select `Merge cells`.
17 | Merged cells can be unmerged the same way (with the menu item `Unmerge cells`)
18 |
19 | ## Charset option
20 |
21 | * Unicode
22 | * Ascii
23 |
24 | ## Headers option
25 |
26 | ### Horizontal Header:
27 |
28 | Type of column headers.
29 |
30 | * __None__: No header. The first line is directly the content.
31 | * __First line__: The first line of the table is used as header.
32 | * __Number__: number are used as column header.
33 | * __Letter__: letters are used as column header (A, B, C.. - like in Excel).
34 |
35 |
36 | ### Vertical Header:
37 |
38 | Type of line headers.
39 |
40 | * __None__: No header. The first column is directly the content.
41 | * __First column__: The first column of the table is used as header.
42 | * __Number__: number are used as line header (1, 2, 3.. - like in Excel).
43 | * __Letter__: letters are used as line header.
44 |
45 | ## Borders option
46 |
47 | For each border you can select:
48 |
49 | * __None__: no border at all
50 | * __Single__: single border
51 | * __Double__: double border
52 |
53 | Depending on the char set (Unicode or ASCII) some combinations are not possible.
54 |
55 | To help you to understand which border your are modifying with one combo box, the border corresponding to the selected combo box is highlighted in the output.
56 | To remove the highlighting just focus somewhere else.
57 |
58 | ### Horizontal Top Border
59 |
60 | XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
61 | ║ ║ Name │ First Name │ Track Id │ Checked ║
62 | ╠═══╬═══════════╪════════════╪══════════╪═════════╣
63 | ║ 1 ║ Sheffield │ Alice │ 347 │ yes ║
64 | ╟───╫───────────┼────────────┼──────────┼─────────╢
65 | ║ ║ │ Carrie, │ │ ║
66 | ║ 2 ║ Smith │ Bob and │ 152 │ ║
67 | ║ ║ │ Friends │ │ ║
68 | ╟───╫───────────┼────────────┼──────────┼─────────╢
69 | ║ 3 ║ Samson │ Dick │ 948 │ yes ║
70 | ╚═══╩═══════════╧════════════╧══════════╧═════════╝
71 |
72 | ### Horizontal Inner Header Border
73 |
74 | ╔═══╦═══════════╤════════════╤══════════╤═════════╗
75 | ║ ║ Name │ First Name │ Track Id │ Checked ║
76 | XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
77 | ║ 1 ║ Sheffield │ Alice │ 347 │ yes ║
78 | ╟───╫───────────┼────────────┼──────────┼─────────╢
79 | ║ ║ │ Carrie, │ │ ║
80 | ║ 2 ║ Smith │ Bob and │ 152 │ ║
81 | ║ ║ │ Friends │ │ ║
82 | ╟───╫───────────┼────────────┼──────────┼─────────╢
83 | ║ 3 ║ Samson │ Dick │ 948 │ yes ║
84 | ╚═══╩═══════════╧════════════╧══════════╧═════════╝
85 |
86 | This border is only present if column headers are defined (`horizontal header` set to `first line`, `number` or `letter`).
87 |
88 | ### Horizontal Inner Border
89 |
90 | ╔═══╦═══════════╤════════════╤══════════╤═════════╗
91 | ║ ║ Name │ First Name │ Track Id │ Checked ║
92 | ╠═══╬═══════════╪════════════╪══════════╪═════════╣
93 | ║ 1 ║ Sheffield │ Alice │ 347 │ yes ║
94 | XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
95 | ║ ║ │ Carrie, │ │ ║
96 | ║ 2 ║ Smith │ Bob and │ 152 │ ║
97 | ║ ║ │ Friends │ │ ║
98 | XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
99 | ║ 3 ║ Samson │ Dick │ 948 │ yes ║
100 | ╚═══╩═══════════╧════════════╧══════════╧═════════╝
101 |
102 | ### Horizontal Bottom Border
103 |
104 | ╔═══╦═══════════╤════════════╤══════════╤═════════╗
105 | ║ ║ Name │ First Name │ Track Id │ Checked ║
106 | ╠═══╬═══════════╪════════════╪══════════╪═════════╣
107 | ║ 1 ║ Sheffield │ Alice │ 347 │ yes ║
108 | ╟───╫───────────┼────────────┼──────────┼─────────╢
109 | ║ ║ │ Carrie, │ │ ║
110 | ║ 2 ║ Smith │ Bob and │ 152 │ ║
111 | ║ ║ │ Friends │ │ ║
112 | ╟───╫───────────┼────────────┼──────────┼─────────╢
113 | ║ 3 ║ Samson │ Dick │ 948 │ yes ║
114 | XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
115 |
116 | ### Vertical Left Border
117 |
118 | X═══╦═══════════╤════════════╤══════════╤═════════╗
119 | X ║ Name │ First Name │ Track Id │ Checked ║
120 | X═══╬═══════════╪════════════╪══════════╪═════════╣
121 | X 1 ║ Sheffield │ Alice │ 347 │ yes ║
122 | X───╫───────────┼────────────┼──────────┼─────────╢
123 | X ║ │ Carrie, │ │ ║
124 | X 2 ║ Smith │ Bob and │ 152 │ ║
125 | X ║ │ Friends │ │ ║
126 | X───╫───────────┼────────────┼──────────┼─────────╢
127 | X 3 ║ Samson │ Dick │ 948 │ yes ║
128 | X═══╩═══════════╧════════════╧══════════╧═════════╝
129 |
130 | ### Vertical Inner Header Border
131 |
132 | ╔═══X═══════════╤════════════╤══════════╤═════════╗
133 | ║ X Name │ First Name │ Track Id │ Checked ║
134 | ╠═══X═══════════╪════════════╪══════════╪═════════╣
135 | ║ 1 X Sheffield │ Alice │ 347 │ yes ║
136 | ╟───X───────────┼────────────┼──────────┼─────────╢
137 | ║ X │ Carrie, │ │ ║
138 | ║ 2 X Smith │ Bob and │ 152 │ ║
139 | ║ X │ Friends │ │ ║
140 | ╟───X───────────┼────────────┼──────────┼─────────╢
141 | ║ 3 X Samson │ Dick │ 948 │ yes ║
142 | ╚═══X═══════════╧════════════╧══════════╧═════════╝
143 |
144 | This border is only present if line headers are defined (`vertical header` set to `first column`, `number` or `letter`).
145 |
146 | ### Vertical Inner Border
147 |
148 | ╔═══╦═══════════X════════════X══════════X═════════╗
149 | ║ ║ Name X First Name X Track Id X Checked ║
150 | ╠═══╬═══════════X════════════X══════════X═════════╣
151 | ║ 1 ║ Sheffield X Alice X 347 X yes ║
152 | ╟───╫───────────X────────────X──────────X─────────╢
153 | ║ ║ X Carrie, X X ║
154 | ║ 2 ║ Smith X Bob and X 152 X ║
155 | ║ ║ X Friends X X ║
156 | ╟───╫───────────X────────────X──────────X─────────╢
157 | ║ 3 ║ Samson X Dick X 948 X yes ║
158 | ╚═══╩═══════════X════════════X══════════X═════════╝
159 |
160 | ### Vertical Bottom Border
161 |
162 | ╔═══╦═══════════╤════════════╤══════════╤═════════X
163 | ║ ║ Name │ First Name │ Track Id │ Checked X
164 | ╠═══╬═══════════╪════════════╪══════════╪═════════X
165 | ║ 1 ║ Sheffield │ Alice │ 347 │ yes X
166 | ╟───╫───────────┼────────────┼──────────┼─────────X
167 | ║ ║ │ Carrie, │ │ X
168 | ║ 2 ║ Smith │ Bob and │ 152 │ X
169 | ║ ║ │ Friends │ │ X
170 | ╟───╫───────────┼────────────┼──────────┼─────────X
171 | ║ 3 ║ Samson │ Dick │ 948 │ yes X
172 | ╚═══╩═══════════╧════════════╧══════════╧═════════X
173 |
174 | ## ASCII intersection character
175 |
176 | When the charset is set to `Ascii`, this option allows to configure what the character at the intersection of two borders will be.
177 |
178 | __Plus__ (default):
179 |
180 | +====+========+
181 | | Id | Name |
182 | +====+========+
183 | | 1 | Alice |
184 | +----+--------+
185 | | 2 | Bob |
186 | +----+--------+
187 | | 3 | Carrie |
188 | +====+========+
189 |
190 | __Horizontal border__:
191 |
192 | ===============
193 | | Id | Name |
194 | ===============
195 | | 1 | Alice |
196 | ---------------
197 | | 2 | Bob |
198 | ---------------
199 | | 3 | Carrie |
200 | ===============
201 |
202 | __Vertical border__:
203 |
204 | |====|========|
205 | | Id | Name |
206 | |====|========|
207 | | 1 | Alice |
208 | |----|--------|
209 | | 2 | Bob |
210 | |----|--------|
211 | | 3 | Carrie |
212 | |====|========|
213 |
214 | ## Cell padding
215 |
216 | There is a checkbox to configure if additional spaces should be added to ensure a cell padding of one space in each cell.
217 |
218 | __Checked__ (default):
219 |
220 | ┌────┬────────┐
221 | │ Id │ Name │
222 | ├────┼────────┤
223 | │ 1 │ Alice │
224 | │ 2 │ Bob │
225 | │ 3 │ Carrie │
226 | └────┴────────┘
227 |
228 | __Not checked__:
229 |
230 | ┌──┬──────┐
231 | │Id│Name │
232 | ├──┼──────┤
233 | │1 │Alice │
234 | ├──┼──────┤
235 | │2 │Bob │
236 | ├──┼──────┤
237 | │3 │Carrie│
238 | └──┴──────┘
239 |
240 | ## Predefined style
241 |
242 | In order to help you with the configuration of the tool, you can select one of the predefined styles.
243 | Just click on the image corresponding to the style you want to apply.
244 |
245 | ## Output
246 |
247 | The output is displayed right below the table.
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Plain Text Table
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
52 |
53 |
54 |
55 |
Plain Text Table
56 |
Interactively create and edit tables and export them to plain text
57 |
58 |
59 |
Huh ?
60 |
61 |
62 | At a lot of places, like Stackoverflow questions/answers, source code
63 | comments, plain text emails etc. HTML tables are not an option. We can
64 | always format ascii characters to simulate tables but unless you are a
65 | ninja with keyboard, doing so is a headache.
66 |
67 |
68 | This web based tool provides a dead simple way for doing just that - sans
69 | the PITA.
70 |
71 |
72 |
73 |
Your table
74 |
Click to edit cell, Right click for options
75 |
76 |
77 |
78 |
79 |
80 |
81 |
Characters:
85 |
86 |
Horizontal Header:
92 |
Vertical Header:
98 |
99 |
Horizontal Top Border:
104 |
Horizontal Inner Header Border:
109 |
Horizontal Inner Border:
114 |
Horizontal Bottom Border:
119 |
120 |
Vertical Left Border:
125 |
Vertical Inner Header Border:
130 |
Vertical Inner Border:
135 |
Vertical Right Border:
140 |
141 |
ASCII intersection character:
146 |
Ensure a padding of one space in each cell.
147 |
148 |
149 |
Click on the image to select one of the predefined style:
184 | The script runs entirely in browser.
185 |
186 | The data you enter in the grid is not saved to any server.
187 |
188 |
189 | I do not accept donations. However if you are interested in supporting
190 | open source software please consider donating to one or more of the projects
191 | mentioned in the credits section.
192 |