respect links flag in apple dev docs

main
Lee Hanken 2022-05-02 12:35:23 +01:00
parent c8207aa737
commit 801f7525c3
2 changed files with 14 additions and 11 deletions

View File

@ -121,7 +121,6 @@ function read_url(url, res, inline_title, ignore_links) {
} }
function read_apple_url(url, res, inline_title, ignore_links) { function read_apple_url(url, res, inline_title, ignore_links) {
//TODO: currently ignores the flag ignore_links
json_url = apple_dev_parser.dev_doc_url(url); json_url = apple_dev_parser.dev_doc_url(url);
https.get(json_url,(apple_res) => { https.get(json_url,(apple_res) => {
let body = ""; let body = "";
@ -130,7 +129,7 @@ function read_apple_url(url, res, inline_title, ignore_links) {
}); });
apple_res.on("end", () => { apple_res.on("end", () => {
let json = JSON.parse(body); let json = JSON.parse(body);
let markdown = apple_dev_parser.parse_dev_doc_json(json, inline_title); let markdown = apple_dev_parser.parse_dev_doc_json(json, inline_title, ignore_links);
res.send(markdown); res.send(markdown);
}); });
}) })

View File

@ -26,7 +26,7 @@ module.exports = {
}, },
parse_dev_doc_json: function (json, inline_title = true) { parse_dev_doc_json: function (json, inline_title = true, ignore_links = false) {
let text = ""; let text = "";
if (inline_title) { if (inline_title) {
@ -41,14 +41,14 @@ module.exports = {
this.dev_references = json.references; this.dev_references = json.references;
} }
if (typeof json.primaryContentSections !== 'undefined') { if (typeof json.primaryContentSections !== 'undefined') {
text += this.process_sections(json.primaryContentSections); text += this.process_sections(json.primaryContentSections, ignore_links);
} else if (typeof json.sections !== 'undefined') { } else if (typeof json.sections !== 'undefined') {
text += this.process_sections(json.sections); text += this.process_sections(json.sections, ignore_links);
} }
return text; return text;
}, },
process_sections: function (sections) { process_sections: function (sections, ignore_links) {
let text = ""; let text = "";
sections.forEach((section, i) => { sections.forEach((section, i) => {
@ -83,7 +83,7 @@ module.exports = {
text += "\n\n"; text += "\n\n";
} }
} else if (section.kind == 'content') { } else if (section.kind == 'content') {
text += this.process_content_section(section); text += this.process_content_section(section, ignore_links);
} }
} }
@ -111,7 +111,7 @@ module.exports = {
return text; return text;
}, },
process_content_section(section) { process_content_section(section, ignore_links) {
text = ""; text = "";
section.content.forEach((content, i) => { section.content.forEach((content, i) => {
@ -124,7 +124,11 @@ module.exports = {
if (inline.type == "text") { if (inline.type == "text") {
inline_text += inline.text; inline_text += inline.text;
} else if (inline.type == "link") { } else if (inline.type == "link") {
if (ignore_links) {
inline_text += inline.title;
} else {
inline_text += "["+inline.title+"]("+inline.destination+")"; inline_text += "["+inline.title+"]("+inline.destination+")";
}
} else if (inline.type == "reference") { } else if (inline.type == "reference") {
if (typeof inline.identifier !== 'undefined') { if (typeof inline.identifier !== 'undefined') {
if (typeof this.dev_references[inline.identifier] !== 'undefined') { if (typeof this.dev_references[inline.identifier] !== 'undefined') {
@ -148,7 +152,7 @@ module.exports = {
} else if (content.type == 'unorderedList') { } else if (content.type == 'unorderedList') {
if (typeof content.items !== 'undefined') { if (typeof content.items !== 'undefined') {
content.items.forEach((list_item, i) => { content.items.forEach((list_item, i) => {
text += "* " + this.process_content_section(list_item); text += "* " + this.process_content_section(list_item, ignore_links);
}); });
} }
} else if (content.type == 'orderedList') { } else if (content.type == 'orderedList') {
@ -156,7 +160,7 @@ module.exports = {
n=0; n=0;
content.items.forEach((list_item, i) => { content.items.forEach((list_item, i) => {
n = n + 1; n = n + 1;
text += n + " " + this.process_content_section(list_item); text += n + " " + this.process_content_section(list_item, ignore_links);
}); });
} }
} else if (content.type == 'heading') { } else if (content.type == 'heading') {