| Author | Dave Jarvis <email> |
|---|---|
| Date | 2020-09-19 10:20:54 GMT-0700 |
| Commit | 0272c2e8135ad167dd650885cf43db0fb1bfa200 |
| Parent | 4eb723d |
| Delta | 542 lines added, 1046 lines removed, 504-line decrease |
| -/* | ||
| - * Copyright 2020 White Magic Software, Ltd. | ||
| - * | ||
| - * All rights reserved. | ||
| - * | ||
| - * Redistribution and use in source and binary forms, with or without | ||
| - * modification, are permitted provided that the following conditions are met: | ||
| - * | ||
| - * o Redistributions of source code must retain the above copyright | ||
| - * notice, this list of conditions and the following disclaimer. | ||
| - * | ||
| - * o Redistributions in binary form must reproduce the above copyright | ||
| - * notice, this list of conditions and the following disclaimer in the | ||
| - * documentation and/or other materials provided with the distribution. | ||
| - * | ||
| - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
| - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
| - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
| - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
| - * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
| - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
| - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
| - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
| - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
| - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| - */ | ||
| -package com.scrivenvar.tex; | ||
| - | ||
| -import com.whitemagicsoftware.tex.DefaultTeXFont; | ||
| -import com.whitemagicsoftware.tex.TeXEnvironment; | ||
| -import com.whitemagicsoftware.tex.TeXFormula; | ||
| -import com.whitemagicsoftware.tex.TeXLayout; | ||
| -import com.whitemagicsoftware.tex.graphics.AbstractGraphics2D; | ||
| -import com.whitemagicsoftware.tex.graphics.SvgDomGraphics2D; | ||
| -import com.whitemagicsoftware.tex.graphics.SvgGraphics2D; | ||
| -import org.junit.jupiter.api.Test; | ||
| -import org.xml.sax.SAXException; | ||
| - | ||
| -import javax.imageio.ImageIO; | ||
| -import javax.xml.parsers.DocumentBuilderFactory; | ||
| -import javax.xml.parsers.ParserConfigurationException; | ||
| -import java.awt.image.BufferedImage; | ||
| -import java.io.ByteArrayInputStream; | ||
| -import java.io.File; | ||
| -import java.io.IOException; | ||
| -import java.nio.file.Path; | ||
| - | ||
| -import static com.scrivenvar.preview.SvgRasterizer.*; | ||
| -import static java.lang.System.getProperty; | ||
| -import static org.junit.jupiter.api.Assertions.assertEquals; | ||
| - | ||
| -/** | ||
| - * Test that TeX rasterization produces a readable image. | ||
| - */ | ||
| -public class TeXRasterization { | ||
| - private static final String LOAD_EXTERNAL_DTD = | ||
| - "http://apache.org/xml/features/nonvalidating/load-external-dtd"; | ||
| - | ||
| - private static final String EQUATION = | ||
| - "G_{\\mu \\nu} = \\frac{8 \\pi G}{c^4} T_{{\\mu \\nu}}"; | ||
| - | ||
| - private static final String DIR_TEMP = getProperty( "java.io.tmpdir" ); | ||
| - | ||
| - private static final long FILESIZE = 12547; | ||
| - | ||
| - /** | ||
| - * Test that an equation can be converted to a raster image and the | ||
| - * final raster image size corresponds to the input equation. This is | ||
| - * a simple way to verify that the rasterization process is correct, | ||
| - * albeit if any aspect of the SVG algorithm changes (such as padding | ||
| - * around the equation), it will cause this test to fail, which is a bit | ||
| - * misleading. | ||
| - */ | ||
| - @Test | ||
| - public void test_Rasterize_SimpleFormula_CorrectImageSize() | ||
| - throws IOException { | ||
| - final var g = new SvgGraphics2D(); | ||
| - drawGraphics( g ); | ||
| - verifyImage( rasterizeString( g.toString() ) ); | ||
| - } | ||
| - | ||
| - /** | ||
| - * Test that an SVG document object model can be parsed and rasterized into | ||
| - * an image. | ||
| - */ | ||
| - @Test | ||
| - public void getTest_SvgDomGraphics2D_InputElement_OutputRasterizedImage() | ||
| - throws ParserConfigurationException, IOException, SAXException { | ||
| - final var g = new SvgGraphics2D(); | ||
| - drawGraphics( g ); | ||
| - | ||
| - final var expectedSvg = g.toString(); | ||
| - final var bytes = expectedSvg.getBytes(); | ||
| - | ||
| - final var dbf = DocumentBuilderFactory.newInstance(); | ||
| - dbf.setFeature( LOAD_EXTERNAL_DTD, false ); | ||
| - dbf.setNamespaceAware( false ); | ||
| - final var builder = dbf.newDocumentBuilder(); | ||
| - | ||
| - final var doc = builder.parse( new ByteArrayInputStream( bytes ) ); | ||
| - final var actualSvg = toSvg( doc.getDocumentElement() ); | ||
| - | ||
| - verifyImage( rasterizeString( actualSvg ) ); | ||
| - } | ||
| - | ||
| - /** | ||
| - * Test that an SVG image from a DOM element can be rasterized. | ||
| - * | ||
| - * @throws IOException Could not write the image. | ||
| - */ | ||
| - @Test | ||
| - public void test_SvgDomGraphics2D_InputDom_OutputRasterizedImage() | ||
| - throws IOException { | ||
| - final var g = new SvgDomGraphics2D(); | ||
| - drawGraphics( g ); | ||
| - | ||
| - final var dom = g.toDom(); | ||
| - | ||
| - verifyImage( rasterize( dom ) ); | ||
| - } | ||
| - | ||
| - /** | ||
| - * Asserts that the given image matches an expected file size. | ||
| - * | ||
| - * @param image The image to check against the file size. | ||
| - * @throws IOException Could not write the image. | ||
| - */ | ||
| - private void verifyImage( final BufferedImage image ) throws IOException { | ||
| - final var file = export( image, "dom.png" ); | ||
| - assertEquals( FILESIZE, file.length() ); | ||
| - } | ||
| - | ||
| - /** | ||
| - * Creates an SVG string for the default equation and font size. | ||
| - */ | ||
| - private void drawGraphics( final AbstractGraphics2D g ) { | ||
| - final var size = 100f; | ||
| - final var texFont = new DefaultTeXFont( size ); | ||
| - final var env = new TeXEnvironment( texFont ); | ||
| - g.scale( size, size ); | ||
| - | ||
| - final var formula = new TeXFormula( EQUATION ); | ||
| - final var box = formula.createBox( env ); | ||
| - final var layout = new TeXLayout( box, size ); | ||
| - | ||
| - g.initialize( layout.getWidth(), layout.getHeight() ); | ||
| - box.draw( g, layout.getX(), layout.getY() ); | ||
| - } | ||
| - | ||
| - @SuppressWarnings("SameParameterValue") | ||
| - private File export( final BufferedImage image, final String filename ) | ||
| - throws IOException { | ||
| - final var path = Path.of( DIR_TEMP, filename ); | ||
| - final var file = path.toFile(); | ||
| - ImageIO.write( image, "png", file ); | ||
| - file.deleteOnExit(); | ||
| - return file; | ||
| - } | ||
| -} | ||
| -#!/bin/bash | ||
| - | ||
| -INKSCAPE="/usr/bin/inkscape" | ||
| -PNG_COMPRESS="optipng" | ||
| -PNG_COMPRESS_OPTS="-o9 *png" | ||
| -ICO_TOOL="icotool" | ||
| -ICO_TOOL_OPTS="-c -o ../../../../../icons/logo.ico logo64.png" | ||
| - | ||
| -declare -a SIZES=("16" "32" "64" "128" "256" "512") | ||
| - | ||
| -for i in "${SIZES[@]}"; do | ||
| - # -y: export background opacity 0 | ||
| - $INKSCAPE -y 0 -z -f "logo.svg" -w "${i}" -e "logo${i}.png" | ||
| -done | ||
| - | ||
| -# Compess the PNG images. | ||
| -which $PNG_COMPRESS && $PNG_COMPRESS $PNG_COMPRESS_OPTS | ||
| - | ||
| -# Generate an ICO file. | ||
| -which $ICO_TOOL && $ICO_TOOL $ICO_TOOL_OPTS | ||
| - | ||
| -<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| -<!-- Created with Inkscape (http://www.inkscape.org/) --> | ||
| - | ||
| -<svg | ||
| - xmlns:dc="http://purl.org/dc/elements/1.1/" | ||
| - xmlns:cc="http://creativecommons.org/ns#" | ||
| - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
| - xmlns:svg="http://www.w3.org/2000/svg" | ||
| - xmlns="http://www.w3.org/2000/svg" | ||
| - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
| - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
| - id="svg2" | ||
| - version="1.1" | ||
| - inkscape:version="0.91 r13725" | ||
| - width="512" | ||
| - height="512" | ||
| - viewBox="0 0 512 512" | ||
| - sodipodi:docname="logo.svg"> | ||
| - <metadata | ||
| - id="metadata8"> | ||
| - <rdf:RDF> | ||
| - <cc:Work | ||
| - rdf:about=""> | ||
| - <dc:format>image/svg+xml</dc:format> | ||
| - <dc:type | ||
| - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||
| - <dc:title></dc:title> | ||
| - </cc:Work> | ||
| - </rdf:RDF> | ||
| - </metadata> | ||
| - <defs | ||
| - id="defs6" /> | ||
| - <sodipodi:namedview | ||
| - pagecolor="#ffffff" | ||
| - bordercolor="#666666" | ||
| - borderopacity="1" | ||
| - objecttolerance="10" | ||
| - gridtolerance="10" | ||
| - guidetolerance="10" | ||
| - inkscape:pageopacity="0" | ||
| - inkscape:pageshadow="2" | ||
| - inkscape:window-width="640" | ||
| - inkscape:window-height="480" | ||
| - id="namedview4" | ||
| - showgrid="false" | ||
| - fit-margin-top="0" | ||
| - fit-margin-left="0" | ||
| - fit-margin-right="0" | ||
| - fit-margin-bottom="0" | ||
| - inkscape:zoom="1.2682274" | ||
| - inkscape:cx="15.646213" | ||
| - inkscape:cy="213.34955" | ||
| - inkscape:current-layer="svg2" /> | ||
| - <path | ||
| - style="fill:#ce6200;fill-opacity:1" | ||
| - d="m 203.2244,511.85078 c -60.01827,-1.2968 -121.688643,-6.5314 -192.436493,-16.334 -5.8078027,-0.8047 -10.66110747,-1.561 -10.78511762,-1.6806 -0.12404567,-0.1196 3.90488112,-4.5812 8.95313512,-9.9147 32.9484785,-34.8102 70.4314485,-73.8923 104.1521555,-108.5956 l 11.87611,-12.2221 5.48905,-10.2177 c 35.82801,-66.6927 75.13064,-128.5665 105.90637,-166.7277 6.13805,-7.611 10.21451,-12.0689 17.28719,-18.9048 36.6818,-35.4537 108.27279,-83.724003 206.0323,-138.917303 22.10365,-12.47935 51.93386,-28.64995037 52.26391,-28.33165037 0.38883,0.37499 -2.35932,25.95575037 -4.86585,45.29275037 -7.28943,56.236403 -17.04619,103.128903 -28.07642,134.939803 -7.19617,20.7536 -14.81287,35.152 -22.9667,43.4155 -3.60444,3.6529 -6.58328,5.7941 -10.1313,7.2825 l -2.56414,1.0756 -53.43164,0.1713 -53.43166,0.1713 3.69973,1.8547 c 26.78565,13.4282 52.58051,27.5241 59.57122,32.5533 4.48397,3.2259 4.41278,2.9854 1.59124,5.3784 -26.99514,22.8955 -74.52961,44.0013 -140.23089,62.2641 -26.34995,7.3244 -57.85469,14.6842 -86.99871,20.3237 l -10.26943,1.9871 -52.01052,53.2733 -52.010524,53.2732 -29.459801,15.1165 c -26.4100885,13.5517 -29.3446639,15.1388 -28.347645,15.3311 0.6117029,0.118 4.0894221,0.2188 7.7282726,0.2239 3.6388854,0.01 16.1273694,0.2329 27.7522124,0.5059 51.576376,1.2116 146.083985,1.512 170.154295,0.5409 34.66996,-1.3988 52.7606,-2.9325 67.58258,-5.7293 2.68664,-0.507 4.82907,-0.9755 4.76094,-1.0412 -0.0681,-0.066 -3.24733,-0.8833 -7.0649,-1.8169 -8.04133,-1.9664 -25.10167,-5.3107 -41.1231,-8.0612 -47.6405,-8.1787 -65.48708,-12.0107 -74.13028,-15.9169 -3.90548,-1.7651 -7.13816,-4.7659 -8.12937,-7.5463 -1.01822,-2.8562 -0.92214,-6.5271 0.23315,-8.9083 1.86563,-3.8451 6.14837,-6.7199 12.26745,-8.2345 16.96993,-4.2004 57.27977,-6.1832 90.36228,-4.4448 54.7332,2.8761 117.0767,13.1228 178.50212,29.3385 18.03514,4.7611 51.66065,14.656 51.22677,15.0744 -0.0824,0.08 -5.72762,-0.854 -12.54488,-2.0745 -40.1043,-7.18 -60.50854,-10.2888 -101.40822,-15.4507 -24.4851,-3.0902 -55.12614,-5.9915 -77.58876,-7.3465 -26.58826,-1.6039 -61.15821,-1.7754 -80.99202,-0.4019 l -3.19705,0.2214 8.70308,1.4934 c 51.89698,8.9047 77.51746,14.9877 88.00479,20.8948 6.9134,3.894 10.30497,9.4381 9.33333,15.2569 -1.50397,9.0066 -10.51381,14.0257 -32.00273,17.8278 -16.31374,2.8863 -47.27575,4.3845 -77.23553,3.7371 z" | ||
| - id="path4138" /> | ||
| - <path | ||
| - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" | ||
| - d="m 214.76931,324.51908 c 60.83777,-14.1145 111.89562,-31.6251 144.40025,-49.5229 3.12602,-1.7213 5.81747,-3.2537 5.98106,-3.4054 0.40534,-0.3759 -13.76388,-7.9415 -34.63489,-18.4929 -7.52161,-3.8026 -9.82337,-5.3787 -12.0735,-8.2668 -5.14485,-6.6036 -5.96081,-14.8404 -2.20331,-22.2417 1.80288,-3.5512 5.69484,-7.3007 9.36158,-9.019 5.20851,-2.4407 1.18148,-2.2865 59.71223,-2.2865 l 52.81361,0 2.13233,-2.1984 c 2.78673,-2.8731 5.23414,-6.4981 8.23035,-12.1905 14.14966,-26.8827 26.71842,-78.3816 36.24347,-148.503303 0.76704,-5.6468 1.36194,-10.2983 1.32201,-10.3369 -0.0399,-0.038 -5.47754,2.9629 -12.08361,6.6697 l -12.01104,6.7396 -133.83068,137.037303 c -73.60688,75.3705 -134.81732,138.0567 -136.0232,139.3026 l -2.19251,2.2653 8.254,-1.8067 c 4.53969,-0.9937 12.01053,-2.6783 16.60185,-3.7435 z" | ||
| - id="path4136" /> | ||
| - <path | ||
| - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1" | ||
| - d="m 202.72524,284.43588 c 69.93294,-70.1332 135.4799,-131.9279 213.46406,-201.244203 7.71421,-6.8568 14.50542,-12.9341 15.09155,-13.5052 0.9482,-0.9239 0.96778,-0.9811 0.17761,-0.5188 -77.96496,45.611803 -139.23519,88.710503 -166.72539,117.278203 -18.81811,19.5556 -50.35654,64.861 -80.96704,116.3104 -0.91787,1.5427 1.02249,-0.3323 18.95921,-18.3204 z" | ||
| - id="path4142" /> | ||
| - <path | ||
| - style="fill:#000000" | ||
| - d="" | ||
| - id="path4140" | ||
| - inkscape:connector-curvature="0" /> | ||
| -</svg> | ||
| -# ######################################################################## | ||
| -# Main Application Window | ||
| -# ######################################################################## | ||
| - | ||
| -# suppress inspection "UnusedProperty" for whole file | ||
| - | ||
| -# The application title should exist only once in the entire code base. | ||
| -# All other references should either refer to this value via the Messages | ||
| -# class, or indirectly using ${Main.title}. | ||
| -Main.title=Scrivenvar | ||
| - | ||
| -Main.menu.file=_File | ||
| -Main.menu.file.new=_New | ||
| -Main.menu.file.open=_Open... | ||
| -Main.menu.file.close=_Close | ||
| -Main.menu.file.close_all=Close All | ||
| -Main.menu.file.save=_Save | ||
| -Main.menu.file.save_as=Save _As | ||
| -Main.menu.file.save_all=Save A_ll | ||
| -Main.menu.file.exit=E_xit | ||
| - | ||
| -Main.menu.edit=_Edit | ||
| -Main.menu.edit.copy.html=Copy _HTML | ||
| -Main.menu.edit.undo=_Undo | ||
| -Main.menu.edit.redo=_Redo | ||
| -Main.menu.edit.cut=Cu_t | ||
| -Main.menu.edit.copy=_Copy | ||
| -Main.menu.edit.paste=_Paste | ||
| -Main.menu.edit.selectAll=Select _All | ||
| -Main.menu.edit.find=_Find | ||
| -Main.menu.edit.find.next=Find _Next | ||
| -Main.menu.edit.preferences=_Preferences | ||
| - | ||
| -Main.menu.insert=_Insert | ||
| -Main.menu.insert.blockquote=_Blockquote | ||
| -Main.menu.insert.code=Inline _Code | ||
| -Main.menu.insert.fenced_code_block=_Fenced Code Block | ||
| -Main.menu.insert.fenced_code_block.prompt=Enter code here | ||
| -Main.menu.insert.link=_Link... | ||
| -Main.menu.insert.image=_Image... | ||
| -Main.menu.insert.heading.1=Heading _1 | ||
| -Main.menu.insert.heading.1.prompt=heading 1 | ||
| -Main.menu.insert.heading.2=Heading _2 | ||
| -Main.menu.insert.heading.2.prompt=heading 2 | ||
| -Main.menu.insert.heading.3=Heading _3 | ||
| -Main.menu.insert.heading.3.prompt=heading 3 | ||
| -Main.menu.insert.unordered_list=_Unordered List | ||
| -Main.menu.insert.ordered_list=_Ordered List | ||
| -Main.menu.insert.horizontal_rule=_Horizontal Rule | ||
| - | ||
| -Main.menu.format=Forma_t | ||
| -Main.menu.format.bold=_Bold | ||
| -Main.menu.format.italic=_Italic | ||
| -Main.menu.format.superscript=Su_perscript | ||
| -Main.menu.format.subscript=Su_bscript | ||
| -Main.menu.format.strikethrough=Stri_kethrough | ||
| - | ||
| -Main.menu.definition=_Definition | ||
| -Main.menu.definition.create=_Create | ||
| -Main.menu.definition.insert=_Insert | ||
| - | ||
| -Main.menu.help=_Help | ||
| -Main.menu.help.about=About ${Main.title} | ||
| - | ||
| -# ######################################################################## | ||
| -# Status Bar | ||
| -# ######################################################################## | ||
| - | ||
| -Main.status.text.offset=offset | ||
| -Main.status.line=Line {0} of {1}, ${Main.status.text.offset} {2} | ||
| -Main.status.state.default=OK | ||
| -Main.status.error.parse={0} (near ${Main.status.text.offset} {1}) | ||
| -Main.status.error.def.blank=Move the caret to a word before inserting a definition. | ||
| -Main.status.error.def.empty=Create a definition before inserting a definition. | ||
| -Main.status.error.def.missing=No definition value found for ''{0}''. | ||
| -Main.status.error.r=Error with [{0}...]: {1} | ||
| - | ||
| -# ######################################################################## | ||
| -# Preferences | ||
| -# ######################################################################## | ||
| - | ||
| -Preferences.r=R | ||
| -Preferences.r.script=Startup Script | ||
| -Preferences.r.script.desc=Script runs prior to executing R statements within the document. | ||
| -Preferences.r.directory=Working Directory | ||
| -Preferences.r.directory.desc=Value assigned to $application.r.working.directory$ and usable in the startup script. | ||
| -Preferences.r.delimiter.began=Delimiter Prefix | ||
| -Preferences.r.delimiter.began.desc=Prefix of expression that wraps inserted definitions. | ||
| -Preferences.r.delimiter.ended=Delimiter Suffix | ||
| -Preferences.r.delimiter.ended.desc=Suffix of expression that wraps inserted definitions. | ||
| - | ||
| -Preferences.images=Images | ||
| -Preferences.images.directory=Relative Directory | ||
| -Preferences.images.directory.desc=Path prepended to embedded images referenced using local file paths. | ||
| -Preferences.images.suffixes=Extensions | ||
| -Preferences.images.suffixes.desc=Preferred order of image file types to embed, separated by spaces. | ||
| - | ||
| -Preferences.definitions=Definitions | ||
| -Preferences.definitions.path=File name | ||
| -Preferences.definitions.path.desc=Absolute path to interpolated string definitions. | ||
| -Preferences.definitions.delimiter.began=Delimiter Prefix | ||
| -Preferences.definitions.delimiter.began.desc=Indicates when a definition key is starting. | ||
| -Preferences.definitions.delimiter.ended=Delimiter Suffix | ||
| -Preferences.definitions.delimiter.ended.desc=Indicates when a definition key is ending. | ||
| - | ||
| -Preferences.fonts=Editor | ||
| -Preferences.fonts.size_editor=Font Size | ||
| -Preferences.fonts.size_editor.desc=Font size to use for the text editor. | ||
| - | ||
| -# ######################################################################## | ||
| -# Definition Pane and its Tree View | ||
| -# ######################################################################## | ||
| - | ||
| -Definition.menu.create=Create | ||
| -Definition.menu.rename=Rename | ||
| -Definition.menu.remove=Delete | ||
| -Definition.menu.add.default=Undefined | ||
| - | ||
| -# ######################################################################## | ||
| -# Failure messages with respect to YAML files. | ||
| -# ######################################################################## | ||
| -yaml.error.open=Could not open YAML file (ensure non-empty file). | ||
| -yaml.error.unresolvable=Too much indirection for: ''{0}'' = ''{1}''. | ||
| -yaml.error.missing=Empty definition value for key ''{0}''. | ||
| -yaml.error.tree.form=Unassigned definition near ''{0}''. | ||
| - | ||
| -# ######################################################################## | ||
| -# File Editor | ||
| -# ######################################################################## | ||
| - | ||
| -FileEditor.loadFailed.message=Failed to load ''{0}''.\n\nReason: {1} | ||
| -FileEditor.loadFailed.title=Load | ||
| -FileEditor.loadFailed.reason.permissions=File must be readable and writable. | ||
| -FileEditor.saveFailed.message=Failed to save ''{0}''.\n\nReason: {1} | ||
| -FileEditor.saveFailed.title=Save | ||
| - | ||
| -# ######################################################################## | ||
| -# File Open | ||
| -# ######################################################################## | ||
| - | ||
| -Dialog.file.choose.open.title=Open File | ||
| -Dialog.file.choose.save.title=Save File | ||
| - | ||
| -Dialog.file.choose.filter.title.source=Source Files | ||
| -Dialog.file.choose.filter.title.definition=Definition Files | ||
| -Dialog.file.choose.filter.title.xml=XML Files | ||
| -Dialog.file.choose.filter.title.all=All Files | ||
| - | ||
| -# ######################################################################## | ||
| -# Alert Dialog | ||
| -# ######################################################################## | ||
| - | ||
| -Alert.file.close.title=Close | ||
| -Alert.file.close.text=Save changes to {0}? | ||
| - | ||
| -# ######################################################################## | ||
| -# Definition Pane | ||
| -# ######################################################################## | ||
| - | ||
| -Pane.definition.node.root.title=Definitions | ||
| -Pane.definition.button.create.label=_Create | ||
| -Pane.definition.button.rename.label=_Rename | ||
| -Pane.definition.button.delete.label=_Delete | ||
| -Pane.definition.button.create.tooltip=Add new item (Insert) | ||
| -Pane.definition.button.rename.tooltip=Rename selected item (F2) | ||
| -Pane.definition.button.delete.tooltip=Delete selected items (Delete) | ||
| - | ||
| -# Controls ############################################################### | ||
| - | ||
| -# ######################################################################## | ||
| -# Browse File | ||
| -# ######################################################################## | ||
| - | ||
| -BrowseFileButton.chooser.title=Browse for local file | ||
| -BrowseFileButton.chooser.allFilesFilter=All Files | ||
| -BrowseFileButton.tooltip=${BrowseFileButton.chooser.title} | ||
| - | ||
| -# Dialogs ################################################################ | ||
| - | ||
| -# ######################################################################## | ||
| -# Image | ||
| -# ######################################################################## | ||
| - | ||
| -Dialog.image.title=Image | ||
| -Dialog.image.chooser.imagesFilter=Images | ||
| -Dialog.image.previewLabel.text=Markdown Preview\: | ||
| -Dialog.image.textLabel.text=Alternate Text\: | ||
| -Dialog.image.titleLabel.text=Title (tooltip)\: | ||
| -Dialog.image.urlLabel.text=Image URL\: | ||
| - | ||
| -# ######################################################################## | ||
| -# Hyperlink | ||
| -# ######################################################################## | ||
| - | ||
| -Dialog.link.title=Link | ||
| -Dialog.link.previewLabel.text=Markdown Preview\: | ||
| -Dialog.link.textLabel.text=Link Text\: | ||
| -Dialog.link.titleLabel.text=Title (tooltip)\: | ||
| -Dialog.link.urlLabel.text=Link URL\: | ||
| - | ||
| -# ######################################################################## | ||
| -# About | ||
| -# ######################################################################## | ||
| - | ||
| -Dialog.about.title=About | ||
| -Dialog.about.header=${Main.title} | ||
| -Dialog.about.content=Copyright 2020 White Magic Software, Ltd.\n\nBased on Markdown Writer FX by Karl Tauber | ||
| -/* | ||
| - * Copyright (c) 2015 Karl Tauber <karl at jformdesigner dot com> | ||
| - * All rights reserved. | ||
| - * | ||
| - * Redistribution and use in source and binary forms, with or without | ||
| - * modification, are permitted provided that the following conditions are met: | ||
| - * | ||
| - * o Redistributions of source code must retain the above copyright | ||
| - * notice, this list of conditions and the following disclaimer. | ||
| - * | ||
| - * o Redistributions in binary form must reproduce the above copyright | ||
| - * notice, this list of conditions and the following disclaimer in the | ||
| - * documentation and/or other materials provided with the distribution. | ||
| - * | ||
| - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
| - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
| - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
| - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
| - * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
| - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
| - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
| - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
| - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
| - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| - */ | ||
| - | ||
| -/*---- toolbar ----*/ | ||
| - | ||
| -.tool-bar { | ||
| - -fx-spacing: 0; | ||
| -} | ||
| - | ||
| -.tool-bar .button { | ||
| - -fx-background-color: transparent; | ||
| -} | ||
| - | ||
| -.tool-bar .button:hover { | ||
| - -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color; | ||
| - -fx-color: -fx-hover-base; | ||
| -} | ||
| - | ||
| -.tool-bar .button:armed { | ||
| - -fx-color: -fx-pressed-base; | ||
| -} | ||
| -# ######################################################################## | ||
| -# Application | ||
| -# ######################################################################## | ||
| - | ||
| -application.title=scrivenvar | ||
| -application.package=com/${application.title} | ||
| -application.messages= com.${application.title}.messages | ||
| - | ||
| -# Suppress multiple file modified notifications for one logical modification. | ||
| -# Given in milliseconds. | ||
| -application.watchdog.timeout=50 | ||
| - | ||
| -# ######################################################################## | ||
| -# Preferences | ||
| -# ######################################################################## | ||
| - | ||
| -preferences.root=com.${application.title} | ||
| -preferences.root.state=state | ||
| -preferences.root.options=options | ||
| -preferences.root.definition.source=definition.source | ||
| - | ||
| -# ######################################################################## | ||
| -# File and Path References | ||
| -# ######################################################################## | ||
| -file.stylesheet.scene=${application.package}/scene.css | ||
| -file.stylesheet.markdown=${application.package}/editor/markdown.css | ||
| -file.stylesheet.preview=webview.css | ||
| -file.stylesheet.xml=${application.package}/xml.css | ||
| - | ||
| -file.logo.16 =${application.package}/logo16.png | ||
| -file.logo.32 =${application.package}/logo32.png | ||
| -file.logo.128=${application.package}/logo128.png | ||
| -file.logo.256=${application.package}/logo256.png | ||
| -file.logo.512=${application.package}/logo512.png | ||
| - | ||
| -# Default file name when a new file is created. | ||
| -# This ensures that the file type can always be | ||
| -# discerned so that the correct type of variable | ||
| -# reference can be inserted. | ||
| -file.default=untitled.md | ||
| -file.definition.default=variables.yaml | ||
| - | ||
| -# ######################################################################## | ||
| -# File name Extensions | ||
| -# ######################################################################## | ||
| - | ||
| -# Comma-separated list of definition file name extensions. | ||
| -definition.file.ext.json=*.json | ||
| -definition.file.ext.toml=*.toml | ||
| -definition.file.ext.yaml=*.yml,*.yaml | ||
| -definition.file.ext.properties=*.properties,*.props | ||
| - | ||
| -# Comma-separated list of file name extensions. | ||
| -file.ext.rmarkdown=*.Rmd | ||
| -file.ext.rxml=*.Rxml | ||
| -file.ext.source=*.md,*.markdown,*.mkdown,*.mdown,*.mkdn,*.mkd,*.mdwn,*.mdtxt,*.mdtext,*.text,*.txt,${file.ext.rmarkdown},${file.ext.rxml} | ||
| -file.ext.definition=${definition.file.ext.yaml} | ||
| -file.ext.xml=*.xml,${file.ext.rxml} | ||
| -file.ext.all=*.* | ||
| - | ||
| -# File name extension search order for images. | ||
| -file.ext.image.order=svg pdf png jpg tiff | ||
| - | ||
| -# ######################################################################## | ||
| -# Variable Name Editor | ||
| -# ######################################################################## | ||
| - | ||
| -# Maximum number of characters for a variable name. A variable is defined | ||
| -# as one or more non-whitespace characters up to this maximum length. | ||
| -editor.variable.maxLength=256 | ||
| - | ||
| -# ######################################################################## | ||
| -# Dialog Preferences | ||
| -# ######################################################################## | ||
| - | ||
| -dialog.alert.button.order.mac=L_HE+U+FBIX_NCYOA_R | ||
| -dialog.alert.button.order.linux=L_HE+UNYACBXIO_R | ||
| -dialog.alert.button.order.windows=L_E+U+FBXI_YNOCAH_R | ||
| - | ||
| -# Ensures a consistent button order for alert dialogs across platforms (because | ||
| -# the default button order on Linux defies all logic). | ||
| -dialog.alert.button.order=${dialog.alert.button.order.windows} | ||
| ---- | ||
| -c: | ||
| - protagonist: | ||
| - name: | ||
| - First: Chloe | ||
| - First_pos: $c.protagonist.name.First$'s | ||
| - Middle: Irene | ||
| - Family: Angelos | ||
| - nick: | ||
| - Father: Savant | ||
| - Mother: Sweetie | ||
| - colour: | ||
| - eyes: green | ||
| - hair: dark auburn | ||
| - syn_1: black | ||
| - syn_2: purple | ||
| - syn_11: teal | ||
| - syn_6: silver | ||
| - favourite: emerald green | ||
| - speech: | ||
| - tic: oh | ||
| - father: | ||
| - heritage: Greek | ||
| - name: | ||
| - Short: Bryce | ||
| - First: Bryson | ||
| - First_pos: $c.protagonist.father.name.First$'s | ||
| - Honourific: Mr. | ||
| - education: Masters | ||
| - vocation: | ||
| - name: robotics | ||
| - title: roboticist | ||
| - employer: | ||
| - name: | ||
| - Short: Rabota | ||
| - Full: $c.protagonist.father.employer.name.Short$ Designs | ||
| - hair: | ||
| - style: thick, curly | ||
| - colour: black | ||
| - eyes: | ||
| - colour: dark brown | ||
| - Endear: Dad | ||
| - vehicle: coupé | ||
| - mother: | ||
| - name: | ||
| - Short: Cass | ||
| - First: Cassandra | ||
| - First_pos: $c.protagonist.mother.name.First$'s | ||
| - Honourific: Mrs. | ||
| - education: PhD | ||
| - speech: | ||
| - tic: cute | ||
| - Honorific: Doctor | ||
| - vocation: | ||
| - article: an | ||
| - name: oceanography | ||
| - title: oceanographer | ||
| - employer: | ||
| - name: | ||
| - Full: Oregon State University | ||
| - Short: OSU | ||
| - eyes: | ||
| - colour: blue | ||
| - hair: | ||
| - style: thick, curly | ||
| - colour: dark brown | ||
| - Endear: Mom | ||
| - Endear_pos: Mom's | ||
| - uncle: | ||
| - name: | ||
| - First: Damian | ||
| - First_pos: $c.protagonist.uncle.name.First$'s | ||
| - Family: Moros | ||
| - hands: | ||
| - fingers: | ||
| - shape: long, bony | ||
| - friend: | ||
| - primary: | ||
| - name: | ||
| - First: Gerard | ||
| - First_pos: $c.protagonist.friend.primary.name.First$'s | ||
| - Family: Baran | ||
| - Family_pos: $c.protagonist.friend.primary.name.Family$'s | ||
| - favourite: | ||
| - colour: midnight blue | ||
| - eyes: | ||
| - colour: hazel | ||
| - mother: | ||
| - name: | ||
| - First: Isabella | ||
| - Short: Izzy | ||
| - Honourific: Mrs. | ||
| - father: | ||
| - name: | ||
| - Short: Mo | ||
| - First: Montgomery | ||
| - First_pos: $c.protagonist.friend.primary.father.name.First$'s | ||
| - Honourific: Mr. | ||
| - speech: | ||
| - tic: y'know | ||
| - endear: Pops | ||
| - military: | ||
| - primary: | ||
| - name: | ||
| - First: Felix | ||
| - Family: LeMay | ||
| - Family_pos: LeMay's | ||
| - rank: | ||
| - Short: General | ||
| - Full: Brigadier $c.military.primary.rank.Short$ | ||
| - colour: | ||
| - eyes: gray | ||
| - hair: dirty brown | ||
| - secondary: | ||
| - name: | ||
| - Family: Grell | ||
| - rank: Colonel | ||
| - colour: | ||
| - eyes: green | ||
| - hair: deep red | ||
| - quaternary: | ||
| - name: | ||
| - First: Gretchen | ||
| - Family: Steinherz | ||
| - minor: | ||
| - primary: | ||
| - name: | ||
| - First: River | ||
| - Family: Banks | ||
| - Honourific: Mx. | ||
| - vocation: | ||
| - title: salesperson | ||
| - employer: | ||
| - Name: Geophysical Prospecting Incorporated | ||
| - Abbr: GPI | ||
| - Area: Cold Spring Creek | ||
| - payment: twenty million | ||
| - secondary: | ||
| - name: | ||
| - First: Renato | ||
| - Middle: Carroña | ||
| - Family: Salvatierra | ||
| - Family_pos: $c.minor.secondary.name.Family$'s | ||
| - Full: $c.minor.secondary.name.First$ $c.minor.secondary.name.Middle$ Alejandro Gregorio Eduardo Salomón Vidal $c.minor.secondary.name.Family$ | ||
| - Honourific: Mister | ||
| - Honourific_sp: Señor | ||
| - vocation: | ||
| - title: detective | ||
| - tertiary: | ||
| - name: | ||
| - First: Robert | ||
| - Family: Hanssen | ||
| - | ||
| - ai: | ||
| - protagonist: | ||
| - name: | ||
| - first: yoky | ||
| - First: Yoky | ||
| - First_pos: $c.ai.protagonist.name.First$'s | ||
| - Family: Tsukuda | ||
| - id: 46692 | ||
| - persona: | ||
| - name: | ||
| - First: Hoshi | ||
| - First_pos: $c.ai.protagonist.persona.name.First$'s | ||
| - Family: Yamamoto | ||
| - Family_pos: $c.ai.protagonist.persona.name.Family$'s | ||
| - culture: Japanese-American | ||
| - ethnicity: Asian | ||
| - rank: Technical Sergeant | ||
| - speech: | ||
| - tic: okay | ||
| - first: | ||
| - Name: Prôtos | ||
| - Name_pos: Prôtos' | ||
| - age: | ||
| - actual: twenty-six weeks | ||
| - virtual: five years | ||
| - second: | ||
| - Name: Défteros | ||
| - third: | ||
| - Name: Trítos | ||
| - fourth: | ||
| - Name: Tétartos | ||
| - material: | ||
| - type: metal | ||
| - raw: ilmenite | ||
| - extract: ore | ||
| - name: | ||
| - short: titanium | ||
| - long: $c.ai.material.name.short$ dioxide | ||
| - Abbr: TiO~2~ | ||
| - pejorative: tin | ||
| - animal: | ||
| - protagonist: | ||
| - Name: Trufflers | ||
| - type: pig | ||
| - antagonist: | ||
| - name: coywolf | ||
| - Name: Coywolf | ||
| - plural: coywolves | ||
| - | ||
| -narrator: | ||
| - one: (by $c.protagonist.father.name.First$ $c.protagonist.name.Family$) | ||
| - two: (by $c.protagonist.mother.name.First$ $c.protagonist.name.Family$) | ||
| - | ||
| -military: | ||
| - name: | ||
| - Short: Agency | ||
| - Short_pos: $military.name.Short$'s | ||
| - plural: agencies | ||
| - machine: | ||
| - Name: Skopós | ||
| - Name_pos: $military.machine.Name$' | ||
| - Location: Arctic | ||
| - predictor: quantum chips | ||
| - land: | ||
| - name: | ||
| - Full: $military.name.Short$ of Defence | ||
| - Slogan: Safety in Numbers | ||
| - air: | ||
| - name: | ||
| - Full: $military.name.Short$ of Air | ||
| - compound: | ||
| - type: base | ||
| - lights: | ||
| - colour: blue | ||
| - nick: | ||
| - Prefix: Catacombs | ||
| - prep: of | ||
| - Suffix: Tartarus | ||
| - | ||
| -government: | ||
| - Country: United States | ||
| - | ||
| -location: | ||
| - protagonist: | ||
| - City: Corvallis | ||
| - Region: Oregon | ||
| - Geography: Willamette Valley | ||
| - secondary: | ||
| - City: Willow Branch Spring | ||
| - Region: Oregon | ||
| - Geography: Wheeler County | ||
| - Water: Clarno Rapids | ||
| - Road: Shaniko-Fossil Highway | ||
| - tertiary: | ||
| - City: Leavenworth | ||
| - Region: Washington | ||
| - Type: Bavarian village | ||
| - school: | ||
| - address: 1400 Northwest Buchanan Avenue | ||
| - hospital: | ||
| - Name: Good Samaritan Regional Medical Center | ||
| - ai: | ||
| - escape: | ||
| - country: | ||
| - Name: Ecuador | ||
| - Name_pos: Ecuador's | ||
| - mountain: | ||
| - Name: Chimborazo | ||
| - | ||
| -language: | ||
| - ai: | ||
| - article: an | ||
| - singular: exanimis | ||
| - plural: exanimēs | ||
| - brain: | ||
| - singular: superum | ||
| - plural: supera | ||
| - title: memristor array | ||
| - Title: Memristor Array | ||
| - police: | ||
| - slang: | ||
| - singular: mippo | ||
| - plural: $language.police.slang.singular$s | ||
| - | ||
| -date: | ||
| - anchor: 2042-09-02 | ||
| - protagonist: | ||
| - born: 0 | ||
| - conceived: -243 | ||
| - attacked: | ||
| - first: 2192 | ||
| - second: 8064 | ||
| - father: | ||
| - attacked: | ||
| - first: -8205 | ||
| - date: | ||
| - second: -1550 | ||
| - family: | ||
| - moved: | ||
| - first: $date.protagonist.conceived$ + 35 | ||
| - game: | ||
| - played: | ||
| - first: $date.protagonist.born$ - 672 | ||
| - second: $date.protagonist.family.moved.first$ + 2 | ||
| - ai: | ||
| - interviewed: 6198 | ||
| - onboarded: $date.ai.interviewed$ + 290 | ||
| - diagnosed: $date.ai.onboarded$ + 2 | ||
| - resigned: $date.ai.diagnosed$ + 3 | ||
| - trapped: $date.ai.resigned$ + 26 | ||
| - torturer: $date.ai.trapped$ + 18 | ||
| - memristor: $date.ai.torturer$ + 61 | ||
| - ethics: $date.ai.memristor$ + 415 | ||
| - trained: $date.ai.ethics$ + 385 | ||
| - mindjacked: $date.ai.trained$ + 22 | ||
| - bombed: $date.ai.mindjacked$ + 458 | ||
| - military: | ||
| - machine: | ||
| - Construction: Six years | ||
| - | ||
| -plot: | ||
| - Log: $c.ai.protagonist.name.First_pos$ Chronicles | ||
| - Channel: Quantum Channel | ||
| - | ||
| - device: | ||
| - computer: | ||
| - Name: Tau | ||
| - network: | ||
| - Name: Internet | ||
| - paper: | ||
| - name: | ||
| - full: electronic sheet | ||
| - short: sheet | ||
| - typewriter: | ||
| - Name: Underwood | ||
| - year: nineteen twenties | ||
| - room: root cellar | ||
| - portable: | ||
| - name: nanobook | ||
| - vehicle: | ||
| - name: robocars | ||
| - Name: Robocars | ||
| - sensor: | ||
| - name: BMP1580 | ||
| - phone: | ||
| - name: comm | ||
| - name_pos: $plot.device.phone.name$'s | ||
| - Name: Comm | ||
| - plural: $plot.device.phone.name$s | ||
| - video: | ||
| - name: vidfeed | ||
| - plural: $plot.device.video.name$s | ||
| - game: | ||
| - Name: Psynæris | ||
| - thought: transed | ||
| - machine: telecognos | ||
| - location: | ||
| - Building: Nijō Castle | ||
| - District: Gion | ||
| - City: Kyoto | ||
| - Country: Japan | ||
| - | ||
| -farm: | ||
| - population: | ||
| - estimate: 350 | ||
| - actual: 1,000 | ||
| - energy: 9800kJ | ||
| - width: 55m | ||
| - length: 55m | ||
| - storeys: 10 | ||
| - | ||
| -lamp: | ||
| - height: 0.17m | ||
| - length: 1.22m | ||
| - width: 0.28m | ||
| - | ||
| -crop: | ||
| - name: | ||
| - singular: tomato | ||
| - plural: $crop.name.singular$es | ||
| - energy: 318kJ | ||
| - weight: 450g | ||
| - yield: 50 | ||
| - harvests: 7 | ||
| - diameter: 2m | ||
| - height: 1.5m | ||
| - | ||
| -heading: | ||
| - ch_01: Till | ||
| - ch_02: Sow | ||
| - ch_03: Seed | ||
| - ch_04: Germinate | ||
| - ch_05: Grow | ||
| - ch_06: Shoot | ||
| - ch_07: Bud | ||
| - ch_08: Bloom | ||
| - ch_09: Pollinate | ||
| - ch_10: Fruit | ||
| - ch_11: Harvest | ||
| - ch_12: Deliver | ||
| - ch_13: Spoil | ||
| - ch_14: Revolt | ||
| - ch_15: Compost | ||
| - ch_16: Burn | ||
| - ch_17: Release | ||
| - ch_18: End Notes | ||
| - ch_19: Characters | ||
| - | ||
| -inference: | ||
| - unit: per cent | ||
| - min: two | ||
| - ch_sow: eighty | ||
| - ch_seed: fifty-two | ||
| - ch_germinate: thirty-one | ||
| - ch_grow: fifteen | ||
| - ch_shoot: seven | ||
| - ch_bloom: four | ||
| - ch_pollinate: two | ||
| - ch_harvest: ninety-five | ||
| - ch_delivery: ninety-eight | ||
| - | ||
| -link: | ||
| - tartarus: https://en.wikipedia.org/wiki/Tartarus | ||
| - exploits: https://www.google.ca/search?q=inurl:ftp+password+filetype:xls | ||
| - atalanta: https://en.wikipedia.org/wiki/Atalanta | ||
| - detain: https://goo.gl/RCNuOQ | ||
| - ceramics: https://en.wikipedia.org/wiki/Transparent_ceramics | ||
| - algernon: https://en.wikipedia.org/wiki/Flowers_for_Algernon | ||
| - holocaust: https://en.wikipedia.org/wiki/IBM_and_the_Holocaust | ||
| - memristor: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.404.9037\&rep=rep1\&type=pdf | ||
| - surveillance: https://www.youtube.com/watch?v=XEVlyP4_11M#t=1487 | ||
| - tor: https://www.torproject.org | ||
| - hydra: https://en.wikipedia.org/wiki/Lernaean_Hydra | ||
| - foliage: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3691134 | ||
| - drake: http://www.bbc.com/future/story/20120821-how-many-alien-worlds-exist | ||
| - fermi: https://arxiv.org/pdf/1404.0204v1.pdf | ||
| - face: https://www.youtube.com/watch?v=ladqJQLR2bA | ||
| - expenditures: http://wikipedia.org/wiki/List_of_countries_by_military_expenditures | ||
| - governance: http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531 | ||
| - asimov: https://en.wikipedia.org/wiki/Three_Laws_of_Robotics | ||
| - clarke: https://en.wikipedia.org/wiki/Clarke's_three_laws | ||
| - jetpack: http://jetpackaviation.com/ | ||
| - hoverboard: https://www.youtube.com/watch?v=WQzLrvz4DKQ | ||
| - eyes_five: https://en.wikipedia.org/wiki/Five_Eyes | ||
| - eyes_nine: https://www.privacytools.io/ | ||
| - eyes_fourteen: http://electrospaces.blogspot.nl/2013/12/14-eyes-are-3rd-party-partners-forming.html | ||
| - tourism: http://www.spacefuture.com/archive/investigation_on_the_economic_and_technological_feasibiity_of_commercial_passenger_transportation_into_leo.shtml | ||
| - | ||
| -.tagmark { | ||
| - -fx-fill: gray; | ||
| -} | ||
| -.anytag { | ||
| - -fx-fill: crimson; | ||
| -} | ||
| -.paren { | ||
| - -fx-fill: firebrick; | ||
| - -fx-font-weight: bold; | ||
| -} | ||
| -.attribute { | ||
| - -fx-fill: darkviolet; | ||
| -} | ||
| -.avalue { | ||
| - -fx-fill: black; | ||
| -} | ||
| -.comment { | ||
| - -fx-fill: teal; | ||
| -} |
| +# ######################################################################## | ||
| +# Application | ||
| +# ######################################################################## | ||
| + | ||
| +application.title=keenwrite | ||
| +application.package=com/${application.title} | ||
| +application.messages= com.${application.title}.messages | ||
| + | ||
| +# Suppress multiple file modified notifications for one logical modification. | ||
| +# Given in milliseconds. | ||
| +application.watchdog.timeout=50 | ||
| + | ||
| +# ######################################################################## | ||
| +# Preferences | ||
| +# ######################################################################## | ||
| + | ||
| +preferences.root=com.${application.title} | ||
| +preferences.root.state=state | ||
| +preferences.root.options=options | ||
| +preferences.root.definition.source=definition.source | ||
| + | ||
| +# ######################################################################## | ||
| +# File and Path References | ||
| +# ######################################################################## | ||
| +file.stylesheet.scene=${application.package}/scene.css | ||
| +file.stylesheet.markdown=${application.package}/editor/markdown.css | ||
| +file.stylesheet.preview=webview.css | ||
| +file.stylesheet.xml=${application.package}/xml.css | ||
| + | ||
| +file.logo.16 =${application.package}/logo16.png | ||
| +file.logo.32 =${application.package}/logo32.png | ||
| +file.logo.128=${application.package}/logo128.png | ||
| +file.logo.256=${application.package}/logo256.png | ||
| +file.logo.512=${application.package}/logo512.png | ||
| + | ||
| +# Default file name when a new file is created. | ||
| +# This ensures that the file type can always be | ||
| +# discerned so that the correct type of variable | ||
| +# reference can be inserted. | ||
| +file.default=untitled.md | ||
| +file.definition.default=variables.yaml | ||
| + | ||
| +# ######################################################################## | ||
| +# File name Extensions | ||
| +# ######################################################################## | ||
| + | ||
| +# Comma-separated list of definition file name extensions. | ||
| +definition.file.ext.json=*.json | ||
| +definition.file.ext.toml=*.toml | ||
| +definition.file.ext.yaml=*.yml,*.yaml | ||
| +definition.file.ext.properties=*.properties,*.props | ||
| + | ||
| +# Comma-separated list of file name extensions. | ||
| +file.ext.rmarkdown=*.Rmd | ||
| +file.ext.rxml=*.Rxml | ||
| +file.ext.source=*.md,*.markdown,*.mkdown,*.mdown,*.mkdn,*.mkd,*.mdwn,*.mdtxt,*.mdtext,*.text,*.txt,${file.ext.rmarkdown},${file.ext.rxml} | ||
| +file.ext.definition=${definition.file.ext.yaml} | ||
| +file.ext.xml=*.xml,${file.ext.rxml} | ||
| +file.ext.all=*.* | ||
| + | ||
| +# File name extension search order for images. | ||
| +file.ext.image.order=svg pdf png jpg tiff | ||
| + | ||
| +# ######################################################################## | ||
| +# Variable Name Editor | ||
| +# ######################################################################## | ||
| + | ||
| +# Maximum number of characters for a variable name. A variable is defined | ||
| +# as one or more non-whitespace characters up to this maximum length. | ||
| +editor.variable.maxLength=256 | ||
| + | ||
| +# ######################################################################## | ||
| +# Dialog Preferences | ||
| +# ######################################################################## | ||
| + | ||
| +dialog.alert.button.order.mac=L_HE+U+FBIX_NCYOA_R | ||
| +dialog.alert.button.order.linux=L_HE+UNYACBXIO_R | ||
| +dialog.alert.button.order.windows=L_E+U+FBXI_YNOCAH_R | ||
| + | ||
| +# Ensures a consistent button order for alert dialogs across platforms (because | ||
| +# the default button order on Linux defies all logic). | ||
| +dialog.alert.button.order=${dialog.alert.button.order.windows} | ||
| +--- | ||
| +c: | ||
| + protagonist: | ||
| + name: | ||
| + First: Chloe | ||
| + First_pos: $c.protagonist.name.First$'s | ||
| + Middle: Irene | ||
| + Family: Angelos | ||
| + nick: | ||
| + Father: Savant | ||
| + Mother: Sweetie | ||
| + colour: | ||
| + eyes: green | ||
| + hair: dark auburn | ||
| + syn_1: black | ||
| + syn_2: purple | ||
| + syn_11: teal | ||
| + syn_6: silver | ||
| + favourite: emerald green | ||
| + speech: | ||
| + tic: oh | ||
| + father: | ||
| + heritage: Greek | ||
| + name: | ||
| + Short: Bryce | ||
| + First: Bryson | ||
| + First_pos: $c.protagonist.father.name.First$'s | ||
| + Honourific: Mr. | ||
| + education: Masters | ||
| + vocation: | ||
| + name: robotics | ||
| + title: roboticist | ||
| + employer: | ||
| + name: | ||
| + Short: Rabota | ||
| + Full: $c.protagonist.father.employer.name.Short$ Designs | ||
| + hair: | ||
| + style: thick, curly | ||
| + colour: black | ||
| + eyes: | ||
| + colour: dark brown | ||
| + Endear: Dad | ||
| + vehicle: coupé | ||
| + mother: | ||
| + name: | ||
| + Short: Cass | ||
| + First: Cassandra | ||
| + First_pos: $c.protagonist.mother.name.First$'s | ||
| + Honourific: Mrs. | ||
| + education: PhD | ||
| + speech: | ||
| + tic: cute | ||
| + Honorific: Doctor | ||
| + vocation: | ||
| + article: an | ||
| + name: oceanography | ||
| + title: oceanographer | ||
| + employer: | ||
| + name: | ||
| + Full: Oregon State University | ||
| + Short: OSU | ||
| + eyes: | ||
| + colour: blue | ||
| + hair: | ||
| + style: thick, curly | ||
| + colour: dark brown | ||
| + Endear: Mom | ||
| + Endear_pos: Mom's | ||
| + uncle: | ||
| + name: | ||
| + First: Damian | ||
| + First_pos: $c.protagonist.uncle.name.First$'s | ||
| + Family: Moros | ||
| + hands: | ||
| + fingers: | ||
| + shape: long, bony | ||
| + friend: | ||
| + primary: | ||
| + name: | ||
| + First: Gerard | ||
| + First_pos: $c.protagonist.friend.primary.name.First$'s | ||
| + Family: Baran | ||
| + Family_pos: $c.protagonist.friend.primary.name.Family$'s | ||
| + favourite: | ||
| + colour: midnight blue | ||
| + eyes: | ||
| + colour: hazel | ||
| + mother: | ||
| + name: | ||
| + First: Isabella | ||
| + Short: Izzy | ||
| + Honourific: Mrs. | ||
| + father: | ||
| + name: | ||
| + Short: Mo | ||
| + First: Montgomery | ||
| + First_pos: $c.protagonist.friend.primary.father.name.First$'s | ||
| + Honourific: Mr. | ||
| + speech: | ||
| + tic: y'know | ||
| + endear: Pops | ||
| + military: | ||
| + primary: | ||
| + name: | ||
| + First: Felix | ||
| + Family: LeMay | ||
| + Family_pos: LeMay's | ||
| + rank: | ||
| + Short: General | ||
| + Full: Brigadier $c.military.primary.rank.Short$ | ||
| + colour: | ||
| + eyes: gray | ||
| + hair: dirty brown | ||
| + secondary: | ||
| + name: | ||
| + Family: Grell | ||
| + rank: Colonel | ||
| + colour: | ||
| + eyes: green | ||
| + hair: deep red | ||
| + quaternary: | ||
| + name: | ||
| + First: Gretchen | ||
| + Family: Steinherz | ||
| + minor: | ||
| + primary: | ||
| + name: | ||
| + First: River | ||
| + Family: Banks | ||
| + Honourific: Mx. | ||
| + vocation: | ||
| + title: salesperson | ||
| + employer: | ||
| + Name: Geophysical Prospecting Incorporated | ||
| + Abbr: GPI | ||
| + Area: Cold Spring Creek | ||
| + payment: twenty million | ||
| + secondary: | ||
| + name: | ||
| + First: Renato | ||
| + Middle: Carroña | ||
| + Family: Salvatierra | ||
| + Family_pos: $c.minor.secondary.name.Family$'s | ||
| + Full: $c.minor.secondary.name.First$ $c.minor.secondary.name.Middle$ Alejandro Gregorio Eduardo Salomón Vidal $c.minor.secondary.name.Family$ | ||
| + Honourific: Mister | ||
| + Honourific_sp: Señor | ||
| + vocation: | ||
| + title: detective | ||
| + tertiary: | ||
| + name: | ||
| + First: Robert | ||
| + Family: Hanssen | ||
| + | ||
| + ai: | ||
| + protagonist: | ||
| + name: | ||
| + first: yoky | ||
| + First: Yoky | ||
| + First_pos: $c.ai.protagonist.name.First$'s | ||
| + Family: Tsukuda | ||
| + id: 46692 | ||
| + persona: | ||
| + name: | ||
| + First: Hoshi | ||
| + First_pos: $c.ai.protagonist.persona.name.First$'s | ||
| + Family: Yamamoto | ||
| + Family_pos: $c.ai.protagonist.persona.name.Family$'s | ||
| + culture: Japanese-American | ||
| + ethnicity: Asian | ||
| + rank: Technical Sergeant | ||
| + speech: | ||
| + tic: okay | ||
| + first: | ||
| + Name: Prôtos | ||
| + Name_pos: Prôtos' | ||
| + age: | ||
| + actual: twenty-six weeks | ||
| + virtual: five years | ||
| + second: | ||
| + Name: Défteros | ||
| + third: | ||
| + Name: Trítos | ||
| + fourth: | ||
| + Name: Tétartos | ||
| + material: | ||
| + type: metal | ||
| + raw: ilmenite | ||
| + extract: ore | ||
| + name: | ||
| + short: titanium | ||
| + long: $c.ai.material.name.short$ dioxide | ||
| + Abbr: TiO~2~ | ||
| + pejorative: tin | ||
| + animal: | ||
| + protagonist: | ||
| + Name: Trufflers | ||
| + type: pig | ||
| + antagonist: | ||
| + name: coywolf | ||
| + Name: Coywolf | ||
| + plural: coywolves | ||
| + | ||
| +narrator: | ||
| + one: (by $c.protagonist.father.name.First$ $c.protagonist.name.Family$) | ||
| + two: (by $c.protagonist.mother.name.First$ $c.protagonist.name.Family$) | ||
| + | ||
| +military: | ||
| + name: | ||
| + Short: Agency | ||
| + Short_pos: $military.name.Short$'s | ||
| + plural: agencies | ||
| + machine: | ||
| + Name: Skopós | ||
| + Name_pos: $military.machine.Name$' | ||
| + Location: Arctic | ||
| + predictor: quantum chips | ||
| + land: | ||
| + name: | ||
| + Full: $military.name.Short$ of Defence | ||
| + Slogan: Safety in Numbers | ||
| + air: | ||
| + name: | ||
| + Full: $military.name.Short$ of Air | ||
| + compound: | ||
| + type: base | ||
| + lights: | ||
| + colour: blue | ||
| + nick: | ||
| + Prefix: Catacombs | ||
| + prep: of | ||
| + Suffix: Tartarus | ||
| + | ||
| +government: | ||
| + Country: United States | ||
| + | ||
| +location: | ||
| + protagonist: | ||
| + City: Corvallis | ||
| + Region: Oregon | ||
| + Geography: Willamette Valley | ||
| + secondary: | ||
| + City: Willow Branch Spring | ||
| + Region: Oregon | ||
| + Geography: Wheeler County | ||
| + Water: Clarno Rapids | ||
| + Road: Shaniko-Fossil Highway | ||
| + tertiary: | ||
| + City: Leavenworth | ||
| + Region: Washington | ||
| + Type: Bavarian village | ||
| + school: | ||
| + address: 1400 Northwest Buchanan Avenue | ||
| + hospital: | ||
| + Name: Good Samaritan Regional Medical Center | ||
| + ai: | ||
| + escape: | ||
| + country: | ||
| + Name: Ecuador | ||
| + Name_pos: Ecuador's | ||
| + mountain: | ||
| + Name: Chimborazo | ||
| + | ||
| +language: | ||
| + ai: | ||
| + article: an | ||
| + singular: exanimis | ||
| + plural: exanimēs | ||
| + brain: | ||
| + singular: superum | ||
| + plural: supera | ||
| + title: memristor array | ||
| + Title: Memristor Array | ||
| + police: | ||
| + slang: | ||
| + singular: mippo | ||
| + plural: $language.police.slang.singular$s | ||
| + | ||
| +date: | ||
| + anchor: 2042-09-02 | ||
| + protagonist: | ||
| + born: 0 | ||
| + conceived: -243 | ||
| + attacked: | ||
| + first: 2192 | ||
| + second: 8064 | ||
| + father: | ||
| + attacked: | ||
| + first: -8205 | ||
| + date: | ||
| + second: -1550 | ||
| + family: | ||
| + moved: | ||
| + first: $date.protagonist.conceived$ + 35 | ||
| + game: | ||
| + played: | ||
| + first: $date.protagonist.born$ - 672 | ||
| + second: $date.protagonist.family.moved.first$ + 2 | ||
| + ai: | ||
| + interviewed: 6198 | ||
| + onboarded: $date.ai.interviewed$ + 290 | ||
| + diagnosed: $date.ai.onboarded$ + 2 | ||
| + resigned: $date.ai.diagnosed$ + 3 | ||
| + trapped: $date.ai.resigned$ + 26 | ||
| + torturer: $date.ai.trapped$ + 18 | ||
| + memristor: $date.ai.torturer$ + 61 | ||
| + ethics: $date.ai.memristor$ + 415 | ||
| + trained: $date.ai.ethics$ + 385 | ||
| + mindjacked: $date.ai.trained$ + 22 | ||
| + bombed: $date.ai.mindjacked$ + 458 | ||
| + military: | ||
| + machine: | ||
| + Construction: Six years | ||
| + | ||
| +plot: | ||
| + Log: $c.ai.protagonist.name.First_pos$ Chronicles | ||
| + Channel: Quantum Channel | ||
| + | ||
| + device: | ||
| + computer: | ||
| + Name: Tau | ||
| + network: | ||
| + Name: Internet | ||
| + paper: | ||
| + name: | ||
| + full: electronic sheet | ||
| + short: sheet | ||
| + typewriter: | ||
| + Name: Underwood | ||
| + year: nineteen twenties | ||
| + room: root cellar | ||
| + portable: | ||
| + name: nanobook | ||
| + vehicle: | ||
| + name: robocars | ||
| + Name: Robocars | ||
| + sensor: | ||
| + name: BMP1580 | ||
| + phone: | ||
| + name: comm | ||
| + name_pos: $plot.device.phone.name$'s | ||
| + Name: Comm | ||
| + plural: $plot.device.phone.name$s | ||
| + video: | ||
| + name: vidfeed | ||
| + plural: $plot.device.video.name$s | ||
| + game: | ||
| + Name: Psynæris | ||
| + thought: transed | ||
| + machine: telecognos | ||
| + location: | ||
| + Building: Nijō Castle | ||
| + District: Gion | ||
| + City: Kyoto | ||
| + Country: Japan | ||
| + | ||
| +farm: | ||
| + population: | ||
| + estimate: 350 | ||
| + actual: 1,000 | ||
| + energy: 9800kJ | ||
| + width: 55m | ||
| + length: 55m | ||
| + storeys: 10 | ||
| + | ||
| +lamp: | ||
| + height: 0.17m | ||
| + length: 1.22m | ||
| + width: 0.28m | ||
| + | ||
| +crop: | ||
| + name: | ||
| + singular: tomato | ||
| + plural: $crop.name.singular$es | ||
| + energy: 318kJ | ||
| + weight: 450g | ||
| + yield: 50 | ||
| + harvests: 7 | ||
| + diameter: 2m | ||
| + height: 1.5m | ||
| + | ||
| +heading: | ||
| + ch_01: Till | ||
| + ch_02: Sow | ||
| + ch_03: Seed | ||
| + ch_04: Germinate | ||
| + ch_05: Grow | ||
| + ch_06: Shoot | ||
| + ch_07: Bud | ||
| + ch_08: Bloom | ||
| + ch_09: Pollinate | ||
| + ch_10: Fruit | ||
| + ch_11: Harvest | ||
| + ch_12: Deliver | ||
| + ch_13: Spoil | ||
| + ch_14: Revolt | ||
| + ch_15: Compost | ||
| + ch_16: Burn | ||
| + ch_17: Release | ||
| + ch_18: End Notes | ||
| + ch_19: Characters | ||
| + | ||
| +inference: | ||
| + unit: per cent | ||
| + min: two | ||
| + ch_sow: eighty | ||
| + ch_seed: fifty-two | ||
| + ch_germinate: thirty-one | ||
| + ch_grow: fifteen | ||
| + ch_shoot: seven | ||
| + ch_bloom: four | ||
| + ch_pollinate: two | ||
| + ch_harvest: ninety-five | ||
| + ch_delivery: ninety-eight | ||
| + | ||
| +link: | ||
| + tartarus: https://en.wikipedia.org/wiki/Tartarus | ||
| + exploits: https://www.google.ca/search?q=inurl:ftp+password+filetype:xls | ||
| + atalanta: https://en.wikipedia.org/wiki/Atalanta | ||
| + detain: https://goo.gl/RCNuOQ | ||
| + ceramics: https://en.wikipedia.org/wiki/Transparent_ceramics | ||
| + algernon: https://en.wikipedia.org/wiki/Flowers_for_Algernon | ||
| + holocaust: https://en.wikipedia.org/wiki/IBM_and_the_Holocaust | ||
| + memristor: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.404.9037\&rep=rep1\&type=pdf | ||
| + surveillance: https://www.youtube.com/watch?v=XEVlyP4_11M#t=1487 | ||
| + tor: https://www.torproject.org | ||
| + hydra: https://en.wikipedia.org/wiki/Lernaean_Hydra | ||
| + foliage: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3691134 | ||
| + drake: http://www.bbc.com/future/story/20120821-how-many-alien-worlds-exist | ||
| + fermi: https://arxiv.org/pdf/1404.0204v1.pdf | ||
| + face: https://www.youtube.com/watch?v=ladqJQLR2bA | ||
| + expenditures: http://wikipedia.org/wiki/List_of_countries_by_military_expenditures | ||
| + governance: http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531 | ||
| + asimov: https://en.wikipedia.org/wiki/Three_Laws_of_Robotics | ||
| + clarke: https://en.wikipedia.org/wiki/Clarke's_three_laws | ||
| + jetpack: http://jetpackaviation.com/ | ||
| + hoverboard: https://www.youtube.com/watch?v=WQzLrvz4DKQ | ||
| + eyes_five: https://en.wikipedia.org/wiki/Five_Eyes | ||
| + eyes_nine: https://www.privacytools.io/ | ||
| + eyes_fourteen: http://electrospaces.blogspot.nl/2013/12/14-eyes-are-3rd-party-partners-forming.html | ||
| + tourism: http://www.spacefuture.com/archive/investigation_on_the_economic_and_technological_feasibiity_of_commercial_passenger_transportation_into_leo.shtml | ||
| + | ||
| +.tagmark { | ||
| + -fx-fill: gray; | ||
| +} | ||
| +.anytag { | ||
| + -fx-fill: crimson; | ||
| +} | ||
| +.paren { | ||
| + -fx-fill: firebrick; | ||
| + -fx-font-weight: bold; | ||
| +} | ||
| +.attribute { | ||
| + -fx-fill: darkviolet; | ||
| +} | ||
| +.avalue { | ||
| + -fx-fill: black; | ||
| +} | ||
| +.comment { | ||
| + -fx-fill: teal; | ||
| +} |