Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

JSON objects in the ODB, Markdown text instead of WP-Text

オープン
#14 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
活発
技術スタック
json, markdown
領域
database, desktop

調査の方向性

No files, tests, or entry points are named. Start by breaking the proposal into the JSON-in-ODB and Markdown-backed wp-text editor work, then identify the existing ODB, scripting-language, and wp-text implementations. Done requires an agreed scope and tests for JSON storage/navigation and editing wp-text as Markdown.

索引モデルが issue の本文から書いたものです。

説明

A bit of thinking out loud. Last time I worked on Frontier, JSON didn't exist and neither did Markdown.

If we were doing it today, we would have used both formats, and integrated them into the language of Frontier, both the scripting language and the odb, we could manipulate and store them.

JSON

I never liked dealing with XML objects in Frontier. We mapped it onto the odb structure, but XML allows multiple objects to have multiple instances with the same name, where as the odb insists every name is unique. We did a hack, and got it to work, but JSON would be better.

Example of how this might work -- the reallySimple package and daveRss, the first for reading feeds, and the latter for writing them. The input and output go in and out in JSON.

JSON details

A JSON type.

JSON constants, when you assign one to a value, it's stored as a JSON type.

Navigation is done the same way JavaScript does it.

Here's an example of a constant assignment to a local.

local (historyArray = [
	{
		"text": "The <b>Associated</b> <i>Press</i> is adding user-generated social content into its wire services.",
		"title": "",
		"link": "http://www.niemanlab.org/2017/05/the-associated-press-is-adding-user-generated-social-content-verified-of-course-into-its-wire-services/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+NiemanJournalismLab+(Nieman+Journalism+Lab)",
		"linkShort": "http://bit.ly/2qoz8i6",
		"when": "2017-05-16T16:47:07.045Z",
		"guid": {
			"flPermalink": true,
			"value": "http://www.niemanlab.org/2017/05/the-associated-press-is-adding-user-generated-social-content-verified-of-course-into-its-wire-services/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+NiemanJournalismLab+(Nieman+Journalism+Lab)"
			},
		"idTweet": "864522615880380419",
		"twitterScreenName": "davewiner",
		},
	{
		"text": "If Donald Trump Were a C.E.O., He'd Probably Be Fired Today.",
		"title": "",
		"link": "http://www.newyorker.com/news/john-cassidy/if-donald-trump-were-a-c-e-o-hed-probably-be-fired-today?mbid=rss",
		"linkShort": "http://bit.ly/2qoxxce",
		"when": "2017-05-16T16:44:25.731Z",
		"guid": {
			"flPermalink": true,
			"value": "http://www.newyorker.com/news/john-cassidy/if-donald-trump-were-a-c-e-o-hed-probably-be-fired-today?mbid=rss"
			},
		"idTweet": "864521938814857216",
		"twitterScreenName": "davewiner"
		},
	])

Referencing part of the JSON object.

local (guid = historyArray [ix].guid)
if (guid.flPermalink) 
   scratchpad.guid = guid
Markdown

This is the perennial problem for Frontier implementors, we licensed a WP engine for the original Frontier, back in the early 90s, and the product wasn't maintained, something like that -- but there were often problems in moving it forward with us. wp-text type is a pain in the ass. I left this for a to-do item until now, but I want to solve it because some of the apps legitimately use wp-text type.

What I want to do is implement it as Markdown.

So when you see a wp-text object you can open it in a window, the user can edit it, and when they save it back to the odb we store Markdown text.

I haven't thought it through any more than that, but wanted to let people know I'm going in this direction.

Haven't done anything with JSON yet.

主要言語
言語のデータがありません
スター
0
フォーク
0
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

scripting/helloFrontier のほかの issue

scripting/helloFrontier の issue をすべて見る

似ている issue

Databases の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。