Skip to content

Instantly share code, notes, and snippets.

@hyuki

hyuki/README.md Secret

Last active March 22, 2022 09:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hyuki/5716e50bd6f57841f90daf11fbc939e2 to your computer and use it in GitHub Desktop.
Save hyuki/5716e50bd6f57841f90daf11fbc939e2 to your computer and use it in GitHub Desktop.
Dynalist to note converter
<!doctype html>
<!--
- Written by Hiroshi Yuki in 2022.
- This code is licensed under CC0.
- http://creativecommons.org/publicdomain/zero/1.0/deed.ja
-->
<html>
<head>
<meta charset="utf-8">
<title>Dynalist to note converter</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@exampledev/new.css@1.1.2/new.min.css">
</head>
<body>
<h1>Dynalist to note converter</h1>
<h2>Input</h2>
<textarea id="INPUT-TEXTAREA" rows="20" cols="80">- Dynalist to note converter - Dynalistで書いた数式まじりの文章をnoteに貼り付けるための変換ツール
- これは何?
- Dynalistで書いた数式まじりの文章をnoteに貼り付けるための変換ツールです。
- たとえば$$x^2 + y^2 = z^2$$のようにDynalistで書いた数式はnoteでも数式になります。
- いま読んでいるこのnote自体、このツールを使って変換したものになります。
- といっても実のところ、試しに作ったものなのでけっこういいかげんです。ソースコードを公開しておきますので、自分好みに改造して使ってください。
- 変換手順
- 変換する手順は次のようになります。
- Dynalistで文章を書きます。
- メニューから次の手順でクリップボードにエクスポートします。「Export...」→「Plain Text」→「Dashes」→「Copy to Clipboard」
- noteで「テキスト」を作成し、編集状態でペーストします。
- 変換ルール
- 現時点での変換ルールは次のようになっています。
- タイトルは、通常の文章になります。noteのタイトルには手動でコピペするイメージです。
- 第一レベルの項目は大見出し(`#`)になります。
- 第二レベルの項目は通常の文章になります。
- 第三レベルの項目は箇条書き(`-`)になります。
- 数式はインライン数式(`$${数式]$$`)になります。
- これ以外はまったく変換しません。ですからたとえば第四レベルよりも深いレベルの項目はnote側では「コード」扱いになってしまいます。
</textarea>
<p><button type="button" id="CONVERT-BUTTON" href="#">Convert</button></p>
<h2>Output</h2>
<textarea id="OUTPUT-TEXTAREA" rows="20" cols="80"></textarea>
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script>
$(function() {
$('#CONVERT-BUTTON').click(function() {
let text = $('#INPUT-TEXTAREA').val();
text = text.split(/\n/).map(line => {
line = line.replace(/^- /, '');
line = line.replace(/^ {4}- /, '# ');
line = line.replace(/^ {8}- /, '');
line = line.replace(/^ {12}- /, '- ');
line = line.replace(/\$\$([^{$]+[^}])\$\$/g, (matched, math) => { return '$${' + math + '}$$'; });
return line;
}).join("\n\n");
$('#OUTPUT-TEXTAREA').val(text);
});
});
</script>
</body>
</html>
@hyuki
Copy link
Author

hyuki commented Mar 22, 2022

Dynalist

image

Exporting

image

Converting

image

Result

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment