Socket
Socket
Sign inDemoInstall

apidoc

Package Overview
Dependencies
Maintainers
1
Versions
96
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

apidoc - npm Package Compare versions

Comparing version 0.6.5 to 0.7.0

lib/parsers/api_sample_request.js

14

CHANGELOG.md
# apiDoc Changelog
#### 0.7.0
Add rudimentary support for direct api calls from within the doc.
Add configuration var `sampleUrl` parameter for `apidoc.json` (for the api calls).
Added ability to have forward slash (/) in parameter field names.
Add parameter `--parse` for parse only the files and return the parsed data.
Allow perl comments between "=pod" and "=cut".
#### 0.6.5

@@ -4,0 +18,0 @@

@@ -5,2 +5,11 @@ # apiDoc Contributors

* [Brian Horakh](https://github.com/brianhorakh)
* Perl - allow =pod and =cut ([#103] (https://github.com/apidoc/apidoc/issues/103))
* [Brian Horakh](https://github.com/brianhorakh)
* Added ability to have forward slash (/) in parameter field names ([#101] (https://github.com/apidoc/apidoc/pull/101))
* [PaulDapolito](https://github.com/PaulDapolito)
* Sample Requests feature ([#98] (https://github.com/apidoc/apidoc/pull/98))
* [Paul Dapolito](https://github.com/PaulDapolito)

@@ -7,0 +16,0 @@ * Fixed bug where dropdown opens off of page ([#85] (https://github.com/apidoc/apidoc/pull/85))

1

example/apidoc.json

@@ -7,2 +7,3 @@ {

"url" : "https://api.github.com/v1",
"sampleUrl": "https://api.github.com/v1",
"header": {

@@ -9,0 +10,0 @@ "title": "My own header title",

8

example/example.js

@@ -10,3 +10,3 @@ /**

*
* @apiParam {String} id The Users-ID.
* @apiParam {Number} id The Users-ID.
*

@@ -16,3 +16,3 @@ * @apiExample Example usage:

*
* @apiSuccess {String} id The Users-ID.
* @apiSuccess {Number} id The Users-ID.
* @apiSuccess {Date} registered Registration Date.

@@ -51,3 +51,3 @@ * @apiSuccess {Date} name Fullname of the User.

*
* @apiSuccess {String} id The new Users-ID.
* @apiSuccess {Number} id The new Users-ID.
*

@@ -59,3 +59,3 @@ * @apiErrorStructure CreateUserError

/**
* @api {put} /user/:id Change a new User
* @api {put} /user/:id Change a User
* @apiVersion 0.3.0

@@ -62,0 +62,0 @@ * @apiName PutUser

var _ = require("underscore");
var path = require("path");
var semver = require("semver");
var findFiles = require("./utils/find_files");
var PackageInfo = require("./package_info");

@@ -14,27 +13,28 @@ var Parser = require("./parser");

var _defaultOptions = {
excludeFilters: [],
includeFilters: [ ".*\\.(coffee|cs|dart|erl|go|java|js|php?|py|rb|ts|pm)$" ],
src: path.join(__dirname, "../example/"),
dest: path.join(__dirname, "../doc/"),
debug: false,
log: true,
simulate: false,
template: path.join(__dirname, "../template/"),
filters: {},
parsers: {},
workers: {},
marked: {
gfm: true,
tables: true,
breaks: false,
pedantic: false,
sanitize: false,
smartLists: false,
smartypants: false
}
excludeFilters: [],
includeFilters: [ ".*\\.(coffee|cs|dart|erl|go|java|js|php?|py|rb|ts|pm)$" ],
src: path.join(__dirname, "../example/"),
dest: path.join(__dirname, "../doc/"),
debug: false,
log: true,
simulate: false,
parse: false, // only parse and return the data, no file creation
template: path.join(__dirname, "../template/"),
filters: {},
parsers: {},
workers: {},
marked: {
gfm: true,
tables: true,
breaks: false,
pedantic: false,
sanitize: false,
smartLists: false,
smartypants: false
}
};

@@ -47,5 +47,5 @@

process.on("uncaughtException", function(err) {
console.error((new Date()).toUTCString() + " uncaughtException:", err.message);
console.error(err.stack);
process.exit(1);
console.error((new Date()).toUTCString() + " uncaughtException:", err.message);
console.error(err.stack);
process.exit(1);
});

@@ -60,3 +60,3 @@

{
if(options.debug) console.log("apidoc: " + message);
if (options.debug) console.log("apidoc: " + message);
} // debug

@@ -71,3 +71,3 @@

{
if(options.log) console.log("apidoc: " + message);
if (options.log) console.log("apidoc: " + message);
} // log

@@ -82,63 +82,134 @@

{
if(options.log) console.warn("apidoc: " + message.yellow);
if (options.log) console.warn("apidoc: " + message.yellow);
} // logWarn
var app = {
debug: debug,
log: log,
logWarn: logWarn,
options: options,
filters: {
apierror : "./filters/api_error.js",
apiinfo : "./filters/api_info.js",
apiparam : "./filters/api_param.js",
apisuccess : "./filters/api_success.js"
},
parsers: {
api : "./parsers/api.js",
apidefineerrorstructure : "./parsers/api_define_error_structure.js",
apidefineheaderstructure : "./parsers/api_define_header_structure.js",
apidefinepermission : "./parsers/api_define_permission.js",
apidefinestructure : "./parsers/api_define_structure.js",
apidefinesuccessstructure: "./parsers/api_define_success_structure.js",
apigroupdescription : "./parsers/api_group_description.js",
apidescription : "./parsers/api_description.js",
apierror : "./parsers/api_error.js",
apierrorexample : "./parsers/api_error_example.js",
apierrorstructure : "./parsers/api_error_structure.js",
apierrortitle : "./parsers/api_error_title.js",
apiexample : "./parsers/api_example.js",
apiheader : "./parsers/api_header.js",
apiheaderexample : "./parsers/api_header_example.js",
apiheaderstructure : "./parsers/api_header_structure.js",
apiheadertitle : "./parsers/api_header_title.js",
apigroup : "./parsers/api_group.js",
apiinfo : "./parsers/api_info.js",
apiinfoexample : "./parsers/api_info_example.js",
apiinfotitle : "./parsers/api_info_title.js",
apiname : "./parsers/api_name.js",
apiparam : "./parsers/api_param.js",
apiparamtitle : "./parsers/api_param_title.js",
apipermission : "./parsers/api_permission.js",
apistructure : "./parsers/api_structure.js",
apisuccess : "./parsers/api_success.js",
apisuccessexample : "./parsers/api_success_example.js",
apisuccessstructure : "./parsers/api_success_structure.js",
apisuccesstitle : "./parsers/api_success_title.js",
apiversion : "./parsers/api_version.js"
},
workers: {
workererrorstructure : "./workers/error_structure.js",
workererrortitle : "./workers/error_title.js",
workerheaderstructure : "./workers/header_structure.js",
workerheadertitle : "./workers/header_title.js",
workerparamtitle : "./workers/param_title.js",
workerpermission : "./workers/permission.js",
workerstructure : "./workers/structure.js",
workersuccessstructure : "./workers/success_structure.js",
workersuccesstitle : "./workers/success_title.js"
}
debug: debug,
log: log,
logWarn: logWarn,
options: options,
filters: {
apierror : "./filters/api_error.js",
apiinfo : "./filters/api_info.js",
apiparam : "./filters/api_param.js",
apisuccess : "./filters/api_success.js"
},
parsers: {
api : "./parsers/api.js",
apidefineerrorstructure : "./parsers/api_define_error_structure.js",
apidefineheaderstructure : "./parsers/api_define_header_structure.js",
apidefinepermission : "./parsers/api_define_permission.js",
apidefinestructure : "./parsers/api_define_structure.js",
apidefinesuccessstructure: "./parsers/api_define_success_structure.js",
apigroupdescription : "./parsers/api_group_description.js",
apidescription : "./parsers/api_description.js",
apierror : "./parsers/api_error.js",
apierrorexample : "./parsers/api_error_example.js",
apierrorstructure : "./parsers/api_error_structure.js",
apierrortitle : "./parsers/api_error_title.js",
apiexample : "./parsers/api_example.js",
apiheader : "./parsers/api_header.js",
apiheaderexample : "./parsers/api_header_example.js",
apiheaderstructure : "./parsers/api_header_structure.js",
apiheadertitle : "./parsers/api_header_title.js",
apigroup : "./parsers/api_group.js",
apiinfo : "./parsers/api_info.js",
apiinfoexample : "./parsers/api_info_example.js",
apiinfotitle : "./parsers/api_info_title.js",
apiname : "./parsers/api_name.js",
apiparam : "./parsers/api_param.js",
apiparamtitle : "./parsers/api_param_title.js",
apipermission : "./parsers/api_permission.js",
apistructure : "./parsers/api_structure.js",
apisuccess : "./parsers/api_success.js",
apisuccessexample : "./parsers/api_success_example.js",
apisuccessstructure : "./parsers/api_success_structure.js",
apisuccesstitle : "./parsers/api_success_title.js",
apiversion : "./parsers/api_version.js",
apisamplerequest : "./parsers/api_sample_request.js"
},
workers: {
apierrorstructure : "./workers/api_error_structure.js",
apierrortitle : "./workers/api_error_title.js",
apiheaderstructure : "./workers/api_header_structure.js",
apiheadertitle : "./workers/api_header_title.js",
apiparamtitle : "./workers/api_param_title.js",
apipermission : "./workers/api_permission.js",
apisamplerequest : "./workers/api_sample_request.js",
apistructure : "./workers/api_structure.js",
apisuccessstructure : "./workers/api_success_structure.js",
apisuccesstitle : "./workers/api_success_title.js"
}
}; // app
/**
* Parser
*
* @param {Object} defaults Overwrite default options.
* @return {Mixed} False on error | 0 = nothing todo | 1 = everything ok | List of Parsed files (if parse is set).
*/
function parse(defaults)
{
// bin-parameters
if (defaults) options = _.defaults(defaults, options);
// Paths
options.dest = path.join(options.dest, "./");
options.template = path.join(options.template, "./");
// Funktionen erweitern / ersetzen
_.defaults(options.logger, app.logger);
_.defaults(options.filters, app.filters);
_.defaults(options.parsers, app.parsers);
_.defaults(options.workers, app.workers);
// Options
app.options = options;
var packageInfo = new PackageInfo(app);
var parser = new Parser(app);
var parsedFiles = [];
var parsedFilenames = [];
var worker = new Worker(app);
var filter = new Filter(app);
try {
// If input option for source is an array of folders,
// parse each folder in the order provided.
if (options.src instanceof Array) {
options.src.forEach(function(folder) {
// Keep same options for each folder, but ensure the "src" of options
// is the folder currently being processed.
var folderOptions = options;
folderOptions.src = path.join(folder, "./");
parser.parseFiles(folderOptions, parsedFiles, parsedFilenames);
});
}
else {
// If the input option for source is a single folder, parse as usual.
options.src = path.join(options.src, "./");
parser.parseFiles(options, parsedFiles, parsedFilenames);
}
// Worker / Filter
if (parsedFiles.length > 0) {
var packageInfos = packageInfo.get();
worker.process(parsedFiles, parsedFilenames, packageInfos);
filter.process(parsedFiles, parsedFilenames);
return createOutputFiles(parsedFiles, parsedFilenames, packageInfos);
} else {
app.log("Nothing to do.");
return 0;
}
} catch(e) {
if (e.stack) app.debug(e.stack);
app.log(e);
}
return;
} // parse
/**
* Output parsed content to files

@@ -152,191 +223,97 @@ *

{
var blocks = [];
// Reduce to get only local blocks.
for(var fileIndex = 0; fileIndex < parsedFiles.length; fileIndex += 1)
{
var parsedFile = parsedFiles[fileIndex];
for(var blockIndex = 0; blockIndex < parsedFile.length; blockIndex += 1)
{
var block = parsedFile[blockIndex];
// "<= 1" if successTitle gets removed, empty Object remain.
if(Object.keys(block.global).length <= 1 && Object.keys(block.local).length > 0)
{
// Add needed Elements for sorting
if( ! block.local.group) {
block.local.group = path.basename( parsedFilenames[fileIndex] );
// Replace special chars
// TODO: check & escape all other fields -> in template?
block.local.group = block.local.group.replace(/[.]/g, "_");
}
if( ! block.local.type) block.local.type = "";
if( ! block.local.url) block.local.url = "";
if( ! block.local.version) block.local.version = "0.0.0";
// Info Element
if( ! block.local.filename) block.local.filename = parsedFilenames[fileIndex];
// Convert dir delimeter \\ to /
block.local.filename = block.local.filename.replace(/\\/g, "/");
blocks.push(block.local);
}
} // for blockIndex
} // for fileIndex
// Empty
parsedFiles = null;
parsedFilenames = null;
// Sort by group ASC, name ASC, version DESC
blocks.sort(function(a, b) {
var nameA = a.group + a.name;
var nameB = b.group + b.name;
if(nameA === nameB)
{
if(a.version === b.version) return 0;
return (semver.gte(a.version, b.version)) ? -1 : 1;
}
return (nameA < nameB) ? -1 : 1;
});
if(options.simulate)
{
app.debug("");
app.debug("!!! Simulation !!! No file or dir will be copied or created.");
app.debug("");
}
app.debug("create dir: " + options.dest);
if( ! options.simulate) fs.mkdirsSync(options.dest);
app.debug("copy template " + options.template + " to: " + options.dest);
if( ! options.simulate) fs.copySync(options.template, options.dest);
// api_data
var json = JSON.stringify(blocks, null, 2);
json = json.replace(/(\r\n|\n|\r)/g, "\r\n");
app.debug("write json file: " + options.dest + "api_data.json");
if( ! options.simulate) fs.writeFileSync(options.dest + "./api_data.json", json);
app.debug("write js file: " + options.dest + "api_data.js");
if( ! options.simulate) fs.writeFileSync(options.dest + "./api_data.js", "define({ api: " + json + " });");
// api_project
var json = JSON.stringify(packageInfos, null, 2);
json = json.replace(/(\r\n|\n|\r)/g, "\r\n");
app.debug("write json file: " + options.dest + "api_project.json");
if( ! options.simulate) fs.writeFileSync(options.dest + "./api_project.json", json);
app.debug("write js file: " + options.dest + "api_project.js");
if( ! options.simulate) fs.writeFileSync(options.dest + "./api_project.js", "define(" + json + ");");
// TODO the following logic should be placed in parser
var blocks = [];
// Reduce to get only local blocks.
for (var fileIndex = 0; fileIndex < parsedFiles.length; fileIndex += 1) {
var parsedFile = parsedFiles[fileIndex];
for (var blockIndex = 0; blockIndex < parsedFile.length; blockIndex += 1) {
var block = parsedFile[blockIndex];
// "<= 1" if successTitle gets removed, empty Object remain.
if (Object.keys(block.global).length <= 1 && Object.keys(block.local).length > 0) {
// Add needed Elements for sorting
if ( ! block.local.group) {
block.local.group = path.basename( parsedFilenames[fileIndex] );
// Replace special chars
// TODO: check & escape all other fields -> in template?
block.local.group = block.local.group.replace(/[.]/g, "_");
}
if ( ! block.local.type) block.local.type = "";
if ( ! block.local.url) block.local.url = "";
if ( ! block.local.version) block.local.version = "0.0.0";
// Info Element
if ( ! block.local.filename) block.local.filename = parsedFilenames[fileIndex];
// Convert dir delimeter \\ to /
block.local.filename = block.local.filename.replace(/\\/g, "/");
blocks.push(block.local);
}
} // for blockIndex
} // for fileIndex
// Empty
parsedFiles = null;
parsedFilenames = null;
// Sort by group ASC, name ASC, version DESC
blocks.sort(function(a, b) {
var nameA = a.group + a.name;
var nameB = b.group + b.name;
if (nameA === nameB) {
if (a.version === b.version) return 0;
return (semver.gte(a.version, b.version)) ? -1 : 1;
}
return (nameA < nameB) ? -1 : 1;
});
if (options.simulate) {
app.debug("");
app.debug("!!! Simulation !!! No file or dir will be copied or created.");
app.debug("");
}
// api_data
var apiData = JSON.stringify(blocks, null, 2);
apiData = apiData.replace(/(\r\n|\n|\r)/g, "\r\n");
var apiProject = JSON.stringify(packageInfos, null, 2);
apiProject = apiProject.replace(/(\r\n|\n|\r)/g, "\r\n");
if (options.parse === true) {
return {
apiData: apiData,
apiProject: apiProject
};
} else {
app.debug("create dir: " + options.dest);
if ( ! options.simulate) fs.mkdirsSync(options.dest);
app.debug("copy template " + options.template + " to: " + options.dest);
if ( ! options.simulate) fs.copySync(options.template, options.dest);
// Write api_data
app.debug("write json file: " + options.dest + "api_data.json");
if( ! options.simulate) fs.writeFileSync(options.dest + "./api_data.json", apiData);
app.debug("write js file: " + options.dest + "api_data.js");
if( ! options.simulate) fs.writeFileSync(options.dest + "./api_data.js", "define({ api: " + apiData + " });");
// Write api_project
app.debug("write json file: " + options.dest + "api_project.json");
if( ! options.simulate) fs.writeFileSync(options.dest + "./api_project.json", apiProject);
app.debug("write js file: " + options.dest + "api_project.js");
if( ! options.simulate) fs.writeFileSync(options.dest + "./api_project.js", "define(" + apiProject + ");");
}
return true;
} // createOutputFiles
/**
* Parse files in specified folder.
* @param {Object} parser Util to parse the files.
* @param {Object} options The options used to parse and filder the files.
* @param {Object[]} parsedFiles List of parsed files.
* @param {String[]} parsedFilenames List of parsed files, with full path.
*/
function parseFiles(parser, options, parsedFiles, parsedFilenames)
{
var files = findFiles(options);
// Parser
for(var i = 0; i < files.length; i += 1)
{
var filename = options.src + files[i];
var parsedFile = parser.parseFile(filename);
if(parsedFile)
{
app.log("parse file: " + filename);
parsedFiles.push(parsedFile);
parsedFilenames.push(filename);
}
} // for
} // parseFiles
/**
* Main
*
* @return {Number} Count parsed files.
*/
function main(defaults)
{
// bin-parameters
if(defaults) options = _.defaults(defaults, options);
// Paths
options.dest = path.join(options.dest, "./");
options.template = path.join(options.template, "./");
// Funktionen erweitern / ersetzen
_.defaults(options.logger, app.logger);
_.defaults(options.filters, app.filters);
_.defaults(options.parsers, app.parsers);
_.defaults(options.workers, app.workers);
// Options
app.options = options;
var packageInfo = new PackageInfo(app);
var parser = new Parser(app);
var parsedFiles = [];
var parsedFilenames = [];
var worker = new Worker(app);
var filter = new Filter(app);
try
{
// If input option for source is an array of folders,
// parse each folder in the order provided.
if (options.src instanceof Array)
{
options.src.forEach(function(folder)
{
// Keep same options for each folder, but ensure the "src" of options
// is the folder currently being processed.
var folderOptions = options;
folderOptions.src = path.join(folder, "./");
parseFiles(parser, folderOptions, parsedFiles, parsedFilenames);
});
}
else
{
// If the input option for source is a single folder, parse as usual.
options.src = path.join(options.src, "./");
parseFiles(parser, options, parsedFiles, parsedFilenames);
}
// Worker / Filter
if(parsedFiles.length > 0)
{
worker.process(parsedFiles, parsedFilenames);
filter.process(parsedFiles, parsedFilenames);
createOutputFiles(parsedFiles, parsedFilenames, packageInfo.get());
return parsedFiles.length;
}
else
{
app.log("Nothing to do.");
return 0;
}
}
catch(e)
{
if(e.stack) app.debug(e.stack);
app.log(e);
}
return;
} // main
/**
* Exports
*/
module.exports = main;
module.exports = parse;
// Direct call
if(path.dirname(process.argv[1]) === __dirname) main();
if(path.dirname(process.argv[1]) === __dirname) parse();

@@ -130,3 +130,5 @@ var fs = require("fs");

packageInfo.url = json.url;
packageInfo.sampleUrl = json.sampleUrl;
// Header

@@ -133,0 +135,0 @@ // TODO: replace it later with a more flexible system to add new navigation points and content files on specific positions.

@@ -6,2 +6,3 @@ var fs = require("fs");

var markdown = require("marked");
var findFiles = require("./utils/find_files");

@@ -53,2 +54,25 @@ var app = {};

/**
* Parse files in specified folder.
* @param {Object} options The options used to parse and filder the files.
* @param {Object[]} parsedFiles List of parsed files.
* @param {String[]} parsedFilenames List of parsed files, with full path.
*/
Parser.prototype.parseFiles = function(options, parsedFiles, parsedFilenames)
{
var self = this;
var files = findFiles(options);
// Parser
for(var i = 0; i < files.length; i += 1) {
var filename = options.src + files[i];
var parsedFile = self.parseFile(filename);
if(parsedFile) {
app.log("parse file: " + filename);
parsedFiles.push(parsedFile);
parsedFilenames.push(filename);
}
} // for
}; // parseFiles
/**
* Execute Fileparsing

@@ -322,3 +346,4 @@ */

// Find document blocks between "#**" and "#*"
docBlocksRegExp: /#\*\*\uffff?(.+?)#\*/g,
// or between "=pod" and "=cut"
docBlocksRegExp: /#\*\*\uffff?(.+?)#\*|=pod\uffff?(.+?)=cut/g,
// Remove not needed " # " and " " (tabs) at the beginning

@@ -338,3 +363,3 @@ inlineRegExp: /^(\s+)?(#)[ ]?/gm

{
var block = matches[1];
var block = matches[2] || matches[1];

@@ -341,0 +366,0 @@ // Reverse Unicode Linebreaks

@@ -48,3 +48,3 @@ var group = "";

b: "(\\[?", // 3
fieldname: "(\\S[a-zA-Z0-9._\\-]*)", // 4
fieldname: "(\\S[a-zA-Z0-9\/._\\-]*)", // 4
vDefaultValue: {

@@ -51,0 +51,0 @@ b: "(?:=['|\"]?",

@@ -46,3 +46,3 @@ var util = require("util");

*/
Worker.prototype.process = function(parsedFiles, parsedFilenames)
Worker.prototype.process = function(parsedFiles, parsedFilenames, packageInfos)
{

@@ -53,3 +53,3 @@ var preProcessResults = {};

{
var result = worker.preProcess(parsedFiles, parsedFilenames);
var result = worker.preProcess(parsedFiles, parsedFilenames, packageInfos);
_.extend(preProcessResults, result);

@@ -63,3 +63,3 @@ }

{
worker.postProcess(parsedFiles, parsedFilenames, preProcessResults);
worker.postProcess(parsedFiles, parsedFilenames, preProcessResults, packageInfos);
}

@@ -66,0 +66,0 @@ catch(e)

{
"name": "apidoc",
"version": "0.6.5",
"version": "0.7.0",
"description": "RESTful web API Documentation Generator",

@@ -5,0 +5,0 @@ "author": "Peter Rottmann <rottmann@inveris.de>",

@@ -1,2 +0,2 @@

# apiDoc 0.6.x
# apiDoc 0.7.x

@@ -72,2 +72,7 @@ Generates a RESTful web API Documentation.

```
```=pod
This is a comment.
=cut
```

@@ -74,0 +79,0 @@ * **Python**

@@ -16,5 +16,9 @@ define({

"Permission:" : "Berechtigung:",
"Response" : "Antwort",
"Send" : "Senden",
"Send a Sample Request" : "Eine Beispielanfrage senden",
"show up to version:" : "zeige bis zur Version:",
"Type" : "Typ"
"Type" : "Typ",
"url" : "url"
}
});

@@ -10,3 +10,4 @@ require.config({

lodash: "./vendor/lodash.min",
prettify: "./vendor/prettify/prettify"
prettify: "./vendor/prettify/prettify",
utilsSampleRequest: "utils/send_sample_request"
},

@@ -35,16 +36,2 @@ shim: {

function loadGoogleFontCss($){
var host = document.location.hostname.toLowerCase();
var protocol = document.location.protocol.toLowerCase();
var googleCss = '//fonts.googleapis.com/css?family=Source+Code+Pro|Source+Sans+Pro:400,600,700';
if (host == "localhost" || !host.length || protocol === 'file:'){
googleCss = 'http:' + googleCss;
}
$("<link/>", {
rel: "stylesheet",
type: "text/css",
href: googleCss
}).appendTo("head");
}
require([

@@ -58,8 +45,11 @@ "jquery",

"prettify",
"utilsSampleRequest",
"bootstrap"
], function($, _, locale, Handlebars, apiProject, apiData, prettyPrint) {
], function($, _, locale, Handlebars, apiProject, apiData, prettyPrint, sampleRequest) {
loadGoogleFontCss($);
/**
* Load google web fonts.
*/
loadGoogleFontCss($);
var api = apiData.api;

@@ -320,3 +310,5 @@

*/
$("body").scrollspy({ offset: 25 });
$('[data-spy="scroll"]').each(function () {
$(this).scrollspy('refresh');
});

@@ -385,2 +377,7 @@ // Content-Scroll on Navigation click.

}
/**
* Init Modules
*/
sampleRequest.initDynamic();
} // initDynamic

@@ -393,3 +390,3 @@ initDynamic();

prettyPrint();
/**

@@ -612,2 +609,18 @@ * HTML-Template specific jQuery-Functions

} // resetArticle
function loadGoogleFontCss($){
var host = document.location.hostname.toLowerCase();
var protocol = document.location.protocol.toLowerCase();
var googleCss = '//fonts.googleapis.com/css?family=Source+Code+Pro|Source+Sans+Pro:400,600,700';
if (host == "localhost" || !host.length || protocol === 'file:'){
googleCss = 'http:' + googleCss;
}
$("<link/>", {
rel: "stylesheet",
type: "text/css",
href: googleCss
}).appendTo("head");
} // loadGoogleFontCss
});

@@ -606,2 +606,17 @@ define({ api: [

"type": "get",
"url": "/language/perl/podcut",
"title": "Perl comment with pod and cut",
"name": "GetLanguagePerlPodCut",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.pm"
},
{
"type": "get",
"url": "/language/python",

@@ -608,0 +623,0 @@ "title": "Python",

@@ -606,2 +606,17 @@ [

"type": "get",
"url": "/language/perl/podcut",
"title": "Perl comment with pod and cut",
"name": "GetLanguagePerlPodCut",
"group": "Language",
"version": "0.4.0",
"examples": [
{
"title": "Test for indented comment.",
"content": "This is example line 2.\nThis is example line 3.\n Line 4 indented (with tab at beginning).\n Line 5 indented.\nThis is example line 6.\n"
}
],
"filename": "test/fixtures/example/language.pm"
},
{
"type": "get",
"url": "/language/python",

@@ -608,0 +623,0 @@ "title": "Python",

@@ -14,5 +14,5 @@ define({

"generator": {
"version": "0.6.2",
"time": "2014-08-08T13:56:55.412Z"
"version": "0.7.0",
"time": "2014-08-22T14:39:03.051Z"
}
});

@@ -14,5 +14,5 @@ {

"generator": {
"version": "0.6.2",
"time": "2014-08-08T13:56:55.412Z"
"version": "0.7.0",
"time": "2014-08-22T14:39:03.051Z"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc