website/docs/plugins/plugin/de.habelt.CodeSection/index.html

324 lines
12 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<!-- Common page configuration that goes in the <head></head> tag -->
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,viewport-fit=cover"/>
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src * data: ; style-src 'self' 'unsafe-inline' ; child-src 'none' ; connect-src 'self' raw.githubusercontent.com ;"/>
<link rel="icon" type="image/x-icon" href="&#x2F;plugins/favicon.png" />
<link rel="stylesheet" href="&#x2F;plugins/fontawesome-6.4.2/css/all.min.css" type="text/css"/>
<!-- Allow included JavaScipt files to determine the root directory of this site. -->
<script id="site-root" type="text/plain">/plugins</script>
<!-- Scripts used by all pages -->
<script src="&#x2F;plugins/bundle-main.js"></script>
<script src="&#x2F;plugins/bundle-components.js"></script>
<title>Joplin Plugins - Code Section</title>
<meta property="og:title" content="Joplin Plugin: Code Section"/>
<meta property="og:description" content="Inserts a piece of code from code source"/>
<meta property="og:image" content=""/>
<script src="&#x2F;plugins/bundle-pluginPage.js"></script>
</head>
<body>
<nav class="navbar navbar-expand-lg bg-body-tertiary sticky-top">
<div class="container">
<a class="navbar-brand" href="https://joplinapp.org/">
<img src="/plugins/joplin-logo.png" alt="Home"/>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav ms-auto me-2 mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="/plugins">Plugins</a>
</li>
<li class="nav-item">
<a class="nav-link" href="https://joplinapp.org/news/">News</a>
</li>
<li class="nav-item">
<a class="nav-link" href="https://joplinapp.org/help/">Help</a>
</li>
<li class="nav-item">
<a class="nav-link" href="https://discourse.joplinapp.org/">Forum</a>
</li>
</ul>
<div class="search-field col-12 col-lg-3 mb-3 mb-lg-0 me-lg-3">
<i class="fa-solid fa-magnifying-glass search-icon" alt=""></i>
<input
type="search"
class="form-control search-input"
placeholder="Search..."
id="search-input"/>
<div class="search-results" id="search-results-container" aria-live="polite"></div>
</div>
</div>
</div>
</nav>
<main class="plugin-details">
<nav aria-label="breadcrumb" class="container breadcrumb-container">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="&#x2F;plugins"><i class="fas fa-home"></i> Home</a>
</li>
<li class="breadcrumb-item"><a id="current-category-nav-link" href="&#x2F;plugins/">All</a></li>
<li class="breadcrumb-item active" aria-current="page">Code Section</li>
</ol>
</nav>
<div class="plugin-overview">
<div class="spacer">
</div>
<div class="plugin-page-header">
<div class="title plugin-page-title">
<img
class="icon plugin-icon -missing"
src=""
alt="Plugin icon"
/>
<div>
<h1 class="card-title">Code Section</h1>
<div class="card-title pb-2">
by
<a
href="./?search=author%3D%22Jürgen Habelt%22%20max-results%3D20"
style="display: inline;"
>
Jürgen Habelt
</a>
</div>
</div>
</div>
<div class="categories">
<a class="plugin-category me-2 badge" href="&#x2F;plugins/#tab-productivity">
<i class="fas fa-tag"></i> productivity
</a>
</div>
</div>
<div class="download-link-container">
<a
href="/plugins/downloadPlugin.html?plugin=de.habelt.CodeSection"
class="btn btn-primary process--append-parent-tab-to-href"
>
Install Plugin
</a>
</div>
</div>
<div class="plugin-content">
<div class="secondary-section">
<div class="content" id="screenshots-container">
<div id="raw-screenshots">
</div>
<!-- See https://getbootstrap.com/docs/5.3/components/carousel/ -->
<div id="screenshots-carousel" class="carousel slide">
<button
class="carousel-control-prev"
type="button"
data-bs-target="#screenshots-carousel"
data-bs-slide="prev"
>
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button
class="carousel-control-next"
type="button"
data-bs-target="#screenshots-carousel"
data-bs-slide="next"
>
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
</div>
</div>
<div class="container section">
<h3>Description</h3>
<p class="card-text pb-4">Inserts a piece of code from code source</p>
</div>
<div class="container section">
<h3>Additional Information</h3>
<table class="additional-information-table">
<tbody>
<tr>
<th>Links:</th>
<td>
<ul class="list-group list-group-flush text-break">
<li><a href=https:&#x2F;&#x2F;github.com&#x2F;Mick2nd&#x2F;Code-Section style="display: block;"><i class="fa-solid fa-link"></i> Repository</a></li>
<li><a href=https:&#x2F;&#x2F;github.com&#x2F;Mick2nd&#x2F;Code-Section#readme style="display: block;"><i class="fa-solid fa-link"></i> Homepage</a></li>
<li>
<a
id="view-plugin-source-link"
href="&#x2F;plugins/view-source.html?plugin=de.habelt.CodeSection"
class="process--append-parent-tab-to-href"
>
<i class="fa-solid fa-code"></i> View source
</a>
</li>
</ul>
</td>
</tr>
<tr>
<th>Maintainers:</th>
<td>
<a href="./?search=maintainer%3D%22mick2nd%22%20max-results%3D20" class="maintainer-link">
mick2nd
</a>
</td>
</tr>
<tr><th>Version:</th><td>1.0.6</td></tr>
<tr><th>Minimum app version:</th><td>2.2</td></tr>
<tr><th>Downloads: This version:</th><td>2678</td></tr>
<tr><th>Last updated:</th><td class="process--format-as-local-time">2022-09-13T14:36:11Z</td></tr>
</tbody>
</table>
</div>
<div class="container section" id="readme" data--is-rendered-markdown>
<h1>Code Section Joplin Plug-in</h1>
<p>This plug-in displays a piece of source code. It reads this source code from a source file which is appended to the note. The code is selected by supporting a code definition inside a code definition block.</p>
<p>The code definition looks as follows:</p>
<pre class="hljs"><code>```codesection
<span class="hljs-punctuation">{</span>
<span class="hljs-attr">"lang"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"python"</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"src"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"CODE-SOURCE-APPENDIX"</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"begin"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">1</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"end"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">50</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"expandTabs"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"tabSize"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">4</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"lineNumbers"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">false</span></span>
<span class="hljs-punctuation">}</span>
```
</code></pre>
<p>Several entries can be omitted and will be replaced by their defaults. The source language and
the source itself are mandatory.</p>
<p>The inserted code will be displayed using the default renderer for that language including syntax
highlighting.</p>
<p>This could look like this:</p>
<p><a href="https://github.com/Mick2nd/Code-Section/blob/master/doc/Python%20Source%20Code.png"><img src="https://raw.githubusercontent.com/Mick2nd/Code-Section/HEAD/doc/Python%20Source%20Code.png" alt="Python Source Code" /></a></p>
<h2>Procedure</h2>
<ol>
<li>Append a code source to the note</li>
<li>Immediately following it add a <code>codesection</code> describing the code to be displayed</li>
<li>The description has the shape of a JSON string</li>
<li>The "src" attribute identifies the code source (its id followed by extension)</li>
<li>Alternatively you could copy and paste the code insertion into the quotes of src</li>
</ol>
<h2>Problems</h2>
<ol>
<li>The resource folder is not recognized after the start of Joplin. Workaround: Invoke the settings and then leave them</li>
<li>Only local sources in the resource folder can be displayed, no web content</li>
<li>The plug-in uses synchronous file access to read the source, no asynchronous access</li>
</ol>
<h2>Release Notes</h2>
<h3>1.0.7</h3>
<ul>
<li>Update of the Joplin API</li>
<li>Bug-fix: plug-in did not work without extension of the code file or with more than one dot in the file name</li>
</ul>
<h3>1.0.6</h3>
<ul>
<li>Changed architecture of the plug-in</li>
<li>Code Sections are printed now with export to pdf</li>
</ul>
<h3>1.0.5</h3>
<ul>
<li>Added a context menu command to insert a template of a <em>code section</em></li>
<li>Added a few properties to the code section description:
<ul>
<li>scale: a scale factor in percent as 80% or absolute font size</li>
<li>spacing: the line spacing, default is 130% of the font size</li>
<li>height: the height of the code section window, may be "auto", "fill", a value in pixels ("400px") or a factor in
percent relating to the window height</li>
</ul>
</li>
</ul>
<h3>1.0.4</h3>
<ul>
<li>Fixed the bug where resource folder was not recognized. Workaround is no longer needed (see Problems 1.).</li>
</ul>
</div>
</div>
</main>
<footer class="page-footer">
<div class="plugin-documentation-section">
<div class="heading">
Would you like to submit or develop a plugin? Consult our documentation:
</div>
<a class="btn btn-outline-primary" href="https://joplinapp.org/help/api/get_started/plugins">
See documentation
</a>
</div>
<div class="links legal-and-about-links">
<div class="copyright">© Joplin 2023 - 2024</div>
<a class="link terms-and-conditions" href="&#x2F;plugins/terms-and-conditions.html">Terms and conditions</a>
<a class="link privacy" href="&#x2F;plugins/privacy-policy.html">Privacy policy</a>
</div>
<div class="site-links">
<a
class="a-github"
href="https://github.com/joplin/website-plugin-discovery"
aria-label="GitHub"
title="GitHub"
>
<i class="fab fa-github"></i>
</a>
<a
class="a-discord"
href="https://discord.com/invite/VSj7AFHvpq"
aria-label="Discord"
title="Discord"
>
<i class="fab fa-discord"></i>
</a>
<a
class="a-linkedin"
href="https://www.linkedin.com/company/joplin"
aria-label="LinkedIn"
title="LinkedIn"
>
<i class="fab fa-linkedin"></i>
</a>
<a
class="a-twitter"
href="https://twitter.com/joplinapp"
aria-label="Twitter"
title="Twitter"
>
<i class="fab fa-twitter"></i>
</a>
<a
class="a-mastodon"
href="https://mastodon.social/@joplinapp"
aria-label="Mastodon"
title="Mastodon"
>
<i class="fab fa-mastodon"></i>
</a>
<a
class="a-patreon"
href="https://www.patreon.com/joplin"
aria-label="Patreon"
title="Patreon"
>
<i class="fab fa-patreon"></i>
</a>
</div>
</footer>
</body>
</html>