=================================== Technical Details and Customization =================================== Here's some technical and architectural mumbo-jumbo that you probably don't need to use LPCG but might be useful if you want to customize LPCG or are just curious. The LPCG note type ================== The note type has five fields: Line Contains the line or lines this card asks you to recite. Since LPCG 1.3, each line is enclosed in a ``

`` tag. For backwards compatibility, the template is also required to correctly display this field if it contains a single line without any ``

`` tags. Both the *Line* and *Context* fields look kind of oddly spaced in the editor due to the use of ``

`` tags, because the editor doesn’t use the same styling as the review window and this can't easily be customized. Context Contains the several lines prior to *Line*, to give you an idea of what to recite. Title The title of the poem that this line comes from. Sequence The line number (counting only text lines, not comments or blank lines) of the first line of the *Line* field in the original poem. If the *Lines in Groups of* :ref:`setting ` was set to a value greater than 1, the actual line number in the original poem is the sequence number multiplied by *Lines in Groups of*, minus *Lines in Groups of*, plus 1. Prompt If this field is populated, it will appear instead of ``[...]`` on the question side. *New in LPCG 1.3.* It is safe to add additional fields to the note type if you wish to include more metadata on your poems. The only likely issue would be if LPCG added a new field in the future and its name happened to conflict with yours; even then, this wouldn't cause any data loss, you'd just have to rename your own field if you wanted to continue using it. Why separate notes? =================== LPCG takes the approach of creating a series of unrelated notes, rather than a single note. Creating one note per poem would have a number of serious disadvantages: * Sibling burying would get in the way – it can of course be turned off, but this would be confusing to some users. * The amount of template boilerplate required would be absurd, and extremely large templates can cause syncing and other issues. * LPCG would not be able to support poems of arbitrary length, since note types cannot contain an arbitrary number of fields or card types; at some point you would have to create multiple notes for the same poem, which would break the neat correspondence anyway. The Sequence field helps to mitigate the disadvantages of having separate notes – by searching for a given poem (e.g., ``"note:LPCG 1.0" "Title:My Poem"``) and then sorting by the Sequence field, you can still see and select the whole poem at once. One possible area for future improvement would be caching the poem or its parsed representation so that a poem's notes could be edited from a poem-editor-like text box after initial creation. At the moment, this feels like gold-plating since poems rarely need editing and I have not seen any demand for such a feature. Customizing styling =================== If you’d like to customize the width of indents, you can make some changes in the styling section of the card types dialog: * **Hanging indent** (when a line is too long for the screen): Change ``margin-left`` and ``text-indent`` in the ``.lines`` class. They should be inverses of each other (e.g., if ``text-indent`` is 30 pixels, ``margin-left`` should be -30 pixels). You’ll also need to change ``margin-left`` in the ``.cloze`` section to match ``text-indent``. * **Manual indent** (when an indent is given in the original poem text): Change ``margin-left`` in the ``.indent`` class. The end-of-stanza and end-of-poem markers can be changed in the add-on config (choose :menuselection:`Tools --> Add-ons`, select LPCG in the list on the left, and click the :guilabel:`Config` button). As of version 1.3, LPCG inverts the color of cloze deletions in night mode, as the default solid blue is quite difficult to read in night mode on many screens. If you don't like the color, you can change it in the styling rule ``.nightMode .cloze``.